/* trackuino copyright (C) 2010  EA5HAV Javi
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */

//#define TESTISS true
#include "config.h"
#include "gps.h"


#include <WProgram.h>
#include <stdlib.h>
#include <string.h>
#include <avr/pgmspace.h>

#ifndef TESTISS     // The real dataset (starting at Feb. 11th 21:00:00 UTC)
PROGMEM const prog_uint16_t ISSData[] = {
	12366, 13906, 14933, 16473, 17500, 19039, 20577, 22116, 
	23654, 25193, 26731, 28269, 29807, 31346, 32884, 34422, 
	35960, 37498, 39037, 40575, 42113, 43652, 45191, 46729, 
	48268, 49807, 50835, 52374, 53402, 54430, 55458, 56487, 
	57516, 58033, 58551, 59068, 59586, 59592, 59598, 59092, 
	58586, 58080, 57573, 56554, 55534, 54515, 53495, 51962, 
	50942, 49409, 48388, 46855, 45322, 43788, 42255, 40721, 
	39187, 37654, 36120, 34586, 33052, 31518, 29984, 28451, 
	26917, 25383, 23850, 22316, 20783, 19249, 17716, 16695, 
	15162, 14142, 12609, 11589, 10570, 9550, 8531, 8024, 
	7518, 7011, 6145, 6151, 6157, 6675, 7193, 7710, 
	8228, 8745, 9773, 10802, 11830, 13369, 14397, 15936, 
	17475, 18502, 20041, 21580, 23118, 24657, 26195, 27733, 
	29271, 30810, 32348, 33886, 35424, 36962, 39013, 40551, 
	42089, 43628, 44654, 46193, 47732, 49271, 50298, 51837, 
	52865, 54405, 55433, 56462, 56979, 58008, 58525, 59043, 
	59561, 59567, 59573, 59067, 59073, 58054, 57548, 57041, 
	56021, 55002, 53982, 52450, 51429, 49897, 48364, 47343, 
	45809, 44276, 42742, 41209, 39675, 38141, 36608, 35074, 
	33540, 32006, 30472, 28938, 27405, 25871, 24337, 22804, 
	21270, 19737, 18204, 17183, 15650, 14117, 13097, 12077, 
	11057, 10037, 9018, 7999, 7492, 6986, 6992, 6486, 
	6492, 7010, 7016, 7173, 7691, 8720, 9748, 10777, 
	11805, 12833, 13860, 15400, 16939, 17966, 19505, 21043, 
	22582, 24120, 25659, 27197, 28735, 30273, 31812, 33350, 
	34888, 36426, 38476, 40015, 41553, 43091, 44630, 45657, 
	47195, 48734, 50274, 51301, 52841, 53868, 54897, 55925, 
	56954, 57471, 58500, 59018, 59024, 59542, 59548, 59042, 
	59048, 58541, 58035, 57016, 55997, 54977, 53957, 52937, 
	51917, 50384, 48851, 47830, 46297, 44764, 43230, 41697, 
	40163, 38629, 37095, 35562, 34028, 32494, 30960, 29426, 
	27893, 26359, 24825, 23292, 21758, 20225, 18691, 17158, 
	16137, 14605, 13584, 12052, 11032, 10012, 8993, 8486, 
	7979, 6961, 6967, 6460, 6466, 6472, 6990, 7508, 
	8025, 8543, 9571, 10600, 11268, 12296, 13836, 14863, 
	16402, 17941, 18968, 20507, 22046, 23584, 25122, 26661, 
	28199, 29737, 31275, 32814, 34352, 36402, 37940, 39478, 
	41017, 42555, 44094, 45632, 46659, 48198, 49737, 50764, 
	52304, 53332, 54872, 55900, 56417, 57446, 57963, 58481, 
	58998, 59516, 59522, 59528, 59022, 58516, 58010, 57503, 
	56484, 55464, 54444, 53424, 51892, 50872, 49339, 47806, 
	46785, 45251, 43718, 42184, 40651, 39117, 37583, 36049, 
	34516, 32982, 31448, 29914, 28380, 26847, 25313, 23779, 
	22246, 20712, 19179, 17646, 16625, 15092, 13560, 12539, 
	11519, 10499, 9480, 8461, 7954, 7448, 6941, 6435, 
	6441, 6447, 6965, 7483, 8000, 8518, 9546, 10063, 
	11091, 12631, 13659, 14687, 16226, 17765, 18432, 19971, 
	21509, 23048, 24586, 26125, 27663, 29201, 30739, 32277, 
	33816, 35866, 37404, 38942, 40481, 42019, 43557, 45096, 
	46635, 47662, 49201, 50740, 51767, 53307, 54335, 55363, 
	56392, 57421, 57938, 58455, 58973, 59491, 59497, 59503, 
	58997, 58491, 57984, 57478, 56459, 55951, 54932, 53400, 
	52380, 51359, 49826, 48293, 47272, 45739, 44206, 42672, 
	41139, 39605, 38071, 36537, 35004, 33470, 31936, 30402, 
	28868, 27334, 25289, 24267, 22734, 21200, 19667, 18134, 
	16600, 15580, 14047, 13027, 12007, 10475, 9967, 8948, 
	7929, 7422, 6916, 6922, 6416, 6422, 6940, 6946, 
	7463, 8492, 9010, 10038, 11067, 12095, 13123, 14662, 
	15690, 17229, 18768, 19794, 21333, 22872, 24410, 25948, 
	27487, 29025, 30563, 32101, 34152, 35330, 36868, 38406, 
	39944, 41483, 43021, 44560, 46098, 47125, 48664, 50203, 
	51231, 52770, 53798, 54826, 55855, 56884, 57913, 58430, 
	58948, 58954, 59472, 59478, 58972, 58978, 58471, 57453, 
	56946, 55926, 54907, 53887, 52867, 51335, 50314, 48781, 
	47248, 46227, 44693, 43160, 41626, 40093, 38559, 37025, 
	35491, 33958, 32424, 30890, 28844, 27310, 25777, 24243, 
	22709, 21688, 20154, 18621, 17088, 16067, 14534, 13514, 
	11982, 10962, 9942, 8923, 8416, 7397, 6891, 6897, 
	6390, 6396, 6402, 6920, 7438, 7955, 8985, 9501, 
	10530, 11558, 12586, 14126, 15153, 16692, 18231, 19770, 
	20797, 22335, 23874, 25412, 26951, 28489, 30027, 31565, 
	33615, 35154, 36692, 38230, 39768, 41307, 42845, 44384, 
	45922, 47461, 48488, 49667, 51206, 52234, 53262, 54802, 
	55830, 56859, 57376, 57893, 58923, 58928, 59446, 59452, 
	59458, 58952, 58446, 57940, 56921, 56414, 55394, 54374, 
	53354, 51822, 50801, 49269, 47736, 46202, 45181, 43648, 
	42114, 40581, 39047, 37513, 35979, 34445, 32912, 30866, 
	29332, 27798, 26264, 24731, 23197, 21664, 20642, 19109, 
	17576, 16043, 15022, 13489, 12469, 11449, 10429, 9410, 
	8391, 7884, 7378, 6871, 6365, 6371, 6377, 6895, 
	7413, 7930, 8447, 9476, 10505, 11533, 12561, 13589, 
	15129, 16156, 17695, 19234, 20261, 21799, 23338, 24876, 
	26414, 27953, 29491, 31541, 33079, 34617, 36156, 37694, 
	39232, 40770, 42309, 43847, 45386, 46925, 47951, 49490, 
	51030, 52057, 53597, 54625, 55653, 56322, 57351, 57868, 
	58385, 58903, 59421, 59427, 59433, 58927, 58421, 57914, 
	57408, 56389, 55369, 54350, 53330, 52309, 50777, 49756, 
	48223, 46690, 45669, 44135, 42602, 41068, 39535, 38001, 
	36467, 34933, 33399, 31354, 29820, 28286, 26752, 25218, 
	23685, 22151, 20618, 19597, 18063, 16530, 15509, 13977, 
	12956, 11424, 10405, 9385, 8878, 7859, 7352, 6846, 
	6852, 6346, 6352, 6870, 6876, 7393, 8422, 8939, 
	9968, 10997, 12025, 13052, 14592, 15619, 17159, 18697, 
	20236, 21263, 22801, 24340, 25878, 27416, 28955, 31005, 
	32543, 34081, 35619, 37158, 38696, 40234, 41773, 43311, 
	44850, 46388, 47927, 48954, 50493, 52033, 53060, 54088, 
	55116, 56145, 57174, 58203, 58720, 59238, 58884, 59402, 
	59408, 58902, 58908, 58401, 57383, 56876, 55856, 54837, 
	53817, 52797, 51264, 50244, 48711, 47178, 45645, 44623, 
	43090, 41556, 40022, 38489, 36955, 35421, 33375, 31841, 
	30308, 28774, 27240, 25706, 24173, 22639, 21106, 20084, 
	18551, 17018, 15485, 14464, 12932, 11912, 10892, 9872, 
	8853, 8346, 7327, 6821, 6827, 6320, 6326, 6332, 
	6850, 7368, 7885, 8914, 9431, 10460, 11488, 13028, 
	14056, 15595, 16622, 18161, 19700, 21239, 22265, 23804, 
	25342, 26880, 28931, 30469, 32007, 33545, 35083, 36621, 
	38160, 39698, 41236, 42775, 44313, 45852, 47391, 48930, 
	49957, 51496, 52524, 54063, 55091, 56120, 57149, 57666, 
	58695, 59213, 59218, 59736, 59742, 59748, 58882, 58376, 
	57869, 56851, 56343, 55324, 54304, 52772, 51752, 50219, 
	49198, 47665, 46132, 44599, 43577, 42044, 40510, 38977, 
	37443, 35397, 33863, 32329, 30795, 29262, 27728, 26194, 
	24660, 23127, 21593, 20060, 19039, 17506, 15973, 14952, 
	13419, 12399, 11379, 10359, 9340, 8321, 7814, 7308, 
	6801, 6295, 6301, 6307, 6825, 7343, 7860, 8377, 
	9406, 10435, 11463, 12491, 13519, 15058, 16086, 17625, 
	19164, 20702, 22241, 23779, 24806, 26856, 28394, 29933, 
	31471, 33009, 34547, 36085, 37623, 39162, 40700, 42238, 
	43777, 45316, 46854, 48393, 49420, 50959, 51987, 53527, 
	54555, 55583, 56611, 57640, 58158, 58675, 59193, 59711, 
	59717, 59723, 59217, 58711, 58204, 57697, 56678, 55299, 
	54279, 53259, 52239, 50707, 49686, 48153, 46620, 45087, 
	44065, 42532, 40998, 39464, 37931, 36397, 34351, 32817, 
	31283, 29749, 28216, 26682, 25148, 23615, 22081, 20548, 
	19526, 17993, 16460, 14927, 13907, 12886, 11354, 10334, 
	9315, 8808, 7789, 7282, 6776, 6270, 6276, 6282, 
	6799, 6805, 7323, 8352, 8869, 9898, 10926, 11954, 
	12982, 14522, 15549, 17088, 18627, 20166, 21705, 22731, 
	24269, 25808, 27346, 29396, 30935, 32473, 34011, 35549, 
	37087, 38626, 40164, 41702, 43241, 44779, 46318, 47857, 
	48884, 50423, 51962, 52990, 54018, 55558, 56075, 57103, 
	58132, 58650, 59168, 59173, 59691, 59698, 59192, 59197, 
	58691, 57672, 57165, 56146, 55127, 54107, 53086, 51554, 
	50533, 48640, 47107, 45574, 44041, 43019, 41486, 39952, 
	38418, 36885, 34839, 33305, 31771, 30237, 28703, 27170, 
	25636, 24102, 22569, 21035, 19502, 18481, 16948, 15415, 
	14394, 12862, 11841, 10821, 9802, 8783, 8276, 7257, 
	6750, 6756, 6250, 6256, 6774, 6780, 7298, 7815, 
	8844, 9361, 10389, 11418, 12958, 13985, 15525, 16552, 
	18091, 19630, 21168, 22707, 24245, 25784, 27322, 28860, 
	30398, 31937, 33475, 35013, 36551, 38089, 39628, 41166, 
	42704, 44243, 45782, 47320, 48859, 49886, 51426, 52453, 
	53993, 55021, 56050, 57078, 57595, 58625, 59142, 59148, 
	59666, 59672, 59678, 59172, 58666, 58159, 57140, 56633, 
	55614, 54594, 53062, 52041, 50509, 49488, 47955, 46422, 
	44889, 43355, 42334, 40800, 38754, 37220, 35687, 33793, 
	32259, 30725, 29191, 27658, 26124, 24590, 23056, 21523, 
	19990, 18968, 17435, 15902, 14881, 13349, 12329, 11309, 
	10289, 9270, 8251, 7744, 7237, 6731, 6225, 6231, 
	6237, 6755, 7272, 7790, 8307, 9336, 10365, 11393, 
	12421, 13449, 14988, 16015, 17554, 19093, 20632, 22171, 
	23709, 25247, 26786, 28324, 29862, 31400, 32939, 34477, 
	36015, 37553, 39091, 40630, 42168, 43707, 45245, 46784, 
	48323, 49350, 50889, 52429, 53456, 54484, 55513, 56541, 
	57570, 58088, 58605, 59123, 59641, 59647, 59653, 59147, 
	58641, 58134, 57627, 56608, 55589, 54569, 53549, 52529, 
	50996, 49976, 48443, 46910, 45376, 43843, 42309, 40776, 
	39242, 37708, 36175, 34641, 33107, 31573, 30039, 28505, 
	26972, 25438, 23904, 22371, 20837, 19304, 17923, 16390, 
	14857, 13836, 12304, 11284, 10264, 9245, 8737, 7719, 
	7212, 6706, 6200, 6206, 6212, 6729, 6735, 7253, 
	8282, 8799, 9828, 10856, 11884, 13424, 14452, 15991, 
	17018, 18557, 20096, 21634, 23173, 24711, 26250, 27788, 
	29326, 30864, 32402, 33941, 35479, 37017, 38555, 40094, 
	41632, 43170, 44709, 46248, 47786, 49325, 50353, 51892, 
	52920, 53948, 55488, 56516, 57033, 58062, 58580, 59098, 
	59615, 59621, 59627, 59121, 59127, 58621, 57602, 57095, 
	56076, 55056, 54036, 52504, 51484, 49951, 48930, 47397, 
	45864, 44331, 42797, 41264, 39730, 38196, 36662, 35129, 
	33595, 32061, 30527, 28993, 27459, 25926, 24392, 22858, 
	21325, 19792, 18258, 17237, 15704, 14684, 13151, 12131, 
	11111, 9732, 8712, 8206, 7187, 6680, 6686, 6180, 
	6186, 6704, 6710, 7228, 7745, 8774, 9803, 10319, 
	11860, 12887, 13915, 15454, 16482, 18021, 19559, 21098, 
	22637, 24175, 25713, 27252, 28790, 30328, 31866, 33405, 
	34943, 36481, 38019, 39557, 41096, 42634, 44173, 45711, 
	47250, 48789, 49816, 51356, 52383, 53923, 54951, 55979, 
	57008, 57525, 58555, 59072, 59078, 59596, 59602, 59096, 
	59102, 58596, 58089, 57070, 56563, 55544, 54012, 52992, 
	51971, 50439, 49418, 47885, 46352, 44818, 43285, 41751, 
	40218, 38684, 37150, 35616, 34083, 32549, 31015, 29481, 
	27947, 26414, 24880, 23346, 21813, 20279, 18746, 17725, 
	16192, 14659, 13639, 12619, 11087, 10067, 9559, 8540, 
	8034, 7527, 6661, 6155, 6161, 6167, 6685, 7202, 
	7720, 8237, 9266, 10295, 11323, 12351, 13378, 14918, 
	16457, 17484, 19023, 20562, 22100, 23639, 25177, 26716, 
	28254, 29792, 31330, 32868, 34407, 35945, 37483, 39021, 
	40560, 42098, 43636, 45175, 46714, 48253, 49792, 50819, 
	52358, 53386, 54414, 55443, 56471, 57500, 58017, 58535, 
	59053, 59571, 59577, 59583, 59077, 58571, 58064, 57557, 
	56538, 55519, 54499, 53479, 52459, 50926, 49393, 48372, 
	46839, 45306, 43773, 42239, 40705, 39172, 37638, 36104, 
	34570, 33037, 31503, 29969, 28435, 26901, 25368, 23834, 
	22300, 20767, 19234, 17701, 16680, 15147, 14126, 12594, 
	11574, 10554, 9535, 8515, 8009, 7502, 6996, 6490, 
	6495, 6501, 6659, 6665, 7695, 8212, 8729, 9758, 
	10786, 11814, 13354, 14381, 15921, 16948, 18487, 20025, 
	21564, 23103, 24641, 26179, 27718, 29256, 30794, 32332, 
	33870, 35409, 36947, 38485, 40023, 41562, 43100, 44639, 
	46177, 47716, 49255, 50282, 51822, 52850, 54390, 55418, 
	56446, 56963, 57992, 58510, 59027, 59545, 59551, 59557, 
	59051, 59057, 58551, 57532, 57025, 56006, 54986, 53966, 
	52434, 51414, 49881, 48860, 47327, 45794, 44260, 42727, 
	41193, 39660, 38126, 36592, 35058, 33524, 31991, 30457, 
	28923, 27389, 25855, 24322, 22788, 21255, 19721, 18188, 
	17167, 15634, 14102, 13081, 12061, 11041, 10022, 9002, 
	7983, 7477, 6970, 6976, 6470, 6476, 6994, 7000, 
	7518, 8035, 9064, 9733, 10761, 11789, 12817, 13845, 
	15384, 16923, 17950, 19489, 21028, 22566, 24105, 25643, 
	27181, 28720, 30258, 31796, 33334, 34872, 36411, 37949, 
	39487, 41026, 42564, 44102, 45641, 47180, 48719, 50258, 
	51285, 52825, 53853, 54881, 55909, 56938, 57455, 58485, 
	59002, 59008, 59526, 59532, 59026, 59032, 58526, 58019, 
	57000, 55981, 54961, 53942, 52922, 51901, 50369, 48836, 
	47815, 46281, 44748, 43215, 41681, 40147, 38614, 37080, 
	35546, 34012, 32478, 30945, 29411, 27877, 26343, 24810, 
	23276, 21743, 20209, 18676, 17143, 16122, 14589, 13569, 
	12036, 11016, 9997, 8977, 8470, 7964, 7457, 6951, 
	6445, 6451, 6457, 6975, 7492, 8010, 8527, 9556, 
	10584, 11613, 12641, 14180, 15208, 16387, 17414, 18953, 
	20492, 22030, 23569, 25107, 26645, 28184, 29722, 31260, 
	32798, 34336, 35874, 37413, 39463, 41001, 42540, 44078, 
	45105, 46644, 48182, 49722, 50749, 52288, 53316, 54344, 
	55372, 56401, 57430, 57947, 58465, 58983, 59501, 59507, 
	59513, 59007, 58500, 57994, 57487, 56468, 55449, 54429, 
	53409, 51877, 50856, 49323, 48302, 46769, 45236, 43702, 
	42169, 40635, 39102, 37568, 36034, 34500, 32966, 31432, 
	29899, 28365, 26831, 25297, 23764, 22230, 20697, 19164, 
	17630, 16609, 15077, 14056, 12524, 11504, 10484, 9464, 
	8445, 7938, 7432, 6926, 6419, 6425, 6431, 6949, 
	7467, 7985, 8502, 9531, 10048, 11076, 12616, 13644, 
	14671, 16210, 17750, 18776, 20315, 21854, 23392, 24931, 
	26469, 28007, 29186, 30724, 32262, 33800, 35338, 37389, 
	38927, 40465, 42003, 43542, 45081, 46107, 47646, 49185, 
	50724, 51752, 52779, 54319, 55348, 56376, 56893, 57922, 
	58440, 58957, 59475, 59481, 59487, 58981, 58987, 57969, 
	57462, 56955, 55936, 54916, 53384, 52364, 51343, 49811, 
	48278, 47257, 45724, 44190, 42657, 41123, 39589, 38056, 
	36522, 34988, 33454, 31920, 30387, 28853, 27319, 25785, 
	24252, 22718, 21185, 19651, 18118, 16585, 15564, 14031, 
	13011, 11991, 10971, 9952, 8932, 7913, 7407, 6900, 
	6906, 6400, 6406, 6924, 6930, 7447, 7965, 8994, 
	10023, 11051, 12079, 13107, 14647, 15674, 17213, 18240, 
	19779, 21318, 22856, 24395, 25933, 27471, 29009, 30548, 
	32086, 33624, 35162, 37212, 38751, 40289, 41827, 43366, 
	44544, 45571, 47110, 48649, 50188, 51215, 52755, 53783, 
	54811, 55839, 56868, 57385, 58414, 58932, 58938, 59456, 
	59462, 58956, 58962, 58456, 57949, 56930, 55911, 54891, 
	53871, 52851, 51319, 50298, 48765, 47744, 46211, 44678, 
	43144, 41611, 40077, 38543, 37010, 35476, 33942, 32408, 
	30874, 29341, 27807, 26273, 24739, 23206, 21672, 20139, 
	18606, 17073, 16052, 14519, 13498, 11966, 10946, 9927, 
	8907, 8400, 7382, 6875, 6881, 6375, 6381, 6387, 
	6905, 7422, 7940, 8457, 9486, 10514, 11542, 12570, 
	14110, 15138, 16677, 18216, 19243, 20781, 22320, 23858, 
	25397, 26935, 28473, 30011, 31550, 33088, 35138, 36676, 
	38214, 39753, 41291, 42829, 44368, 45907, 46933, 48472, 
	50011, 51551, 52578, 53606, 54786, 55814, 56331, 57360, 
	57877, 58395, 58913, 59431, 59437, 59443, 58937, 58430, 
	57924, 57417, 56398, 55379, 54359, 53339, 51806, 50786, 
	49253, 47720, 46699, 45166, 43632, 42099, 40565, 39031, 
	37498, 35964, 34430, 32896, 31362, 29828, 28295, 26249, 
	24715, 23694, 22160, 20627, 19093, 17560, 16027, 15006, 
	13474, 12454, 11434, 10414, 9394, 8375, 7868, 7362, 
	6856, 6349, 6355, 6361, 6879, 7397, 7915, 8432, 
	9461, 9977, 11006, 12546, 13574, 14601, 16140, 17679, 
	19218, 20245, 21784, 23322, 24860, 26399, 27937, 29475, 
	31014, 32552, 34602, 36140, 37678, 39217, 40755, 42293, 
	43832, 45370, 46909, 47936, 49475, 51014, 52042, 53581, 
	54609, 55637, 56666, 57695, 58212, 58370, 58887, 59405, 
	59411, 59417, 58911, 58405, 57899, 57392, 56373, 55866, 
	54846, 53314, 52294, 51273, 49741, 48208, 46675, 45653, 
	44120, 42586, 41053, 39519, 37985, 36452, 34918, 33384, 
	31850, 30316, 28270, 26737, 25203, 23669, 22136, 21114, 
	19581, 18048, 16515, 15494, 13961, 12941, 11409, 10389, 
	9369, 8862, 7843, 7337, 6830, 6836, 6330, 6336, 
	6854, 6860, 7377, 8407, 8924, 9953, 10981, 12009, 
	13037, 14576, 15604, 17143, 18682, 19709, 21247, 22786, 
	24324, 25863, 27401, 28939, 30477, 32016, 34066, 35604, 
	37142, 38680, 40219, 41757, 43295, 44834, 46373, 47399, 
	48938, 50478, 51505, 53045, 54072, 55101, 56129, 57158, 
	58187, 58704, 59222, 59228, 59746, 59392, 58886, 58892, 
	58386, 57367, 56860, 55841, 54821, 53801, 52781, 51249, 
	50228, 48695, 47162, 46141, 44608, 43074, 41541, 40007, 
	38473, 36939, 35406, 33872, 32338, 30292, 28758, 27225, 
	25691, 24157, 22624, 21602, 20069, 18535, 17002, 15469, 
	14449, 12916, 11896, 10876, 9857, 8837, 8330, 7311, 
	6805, 6811, 6305, 6311, 6317, 6835, 7352, 7870, 
	8899, 9416, 10444, 11472, 13012, 14040, 15067, 16607, 
	18146, 19684, 20711, 22250, 23788, 25326, 26865, 28403, 
	29941, 31991, 33530, 35068, 36606, 38144, 39682, 41221, 
	42759, 44298, 45836, 47375, 48402, 49941, 51480, 52508, 
	53536, 55076, 56104, 57133, 57650, 58167, 59197, 59203, 
	59721, 59727, 59733, 59227, 58720, 58214, 56835, 56328, 
	55308, 54289, 52757, 51736, 50716, 49183, 47650, 46117, 
	45095, 43562, 42028, 40495, 38961, 37427, 35893, 34360, 
	32314, 30780, 29246, 27712, 26179, 24645, 23111, 21578, 
	20556, 19023, 17490, 15957, 14936, 13404, 12383, 11363, 
	10344, 9324, 8305, 7798, 7292, 6786, 6279, 6285, 
	6291, 6809, 7327, 7845, 8362, 9391, 10419, 11448, 
	12476, 13503, 15043, 16070, 17609, 19148, 20687, 21713, 
	23252, 24790, 26329, 27867, 29405, 31455, 32993, 34532, 
	36070, 37608, 39146, 40685, 42223, 43761, 45300, 46839, 
	48378, 49405, 50944, 51971, 53511, 54539, 55567, 56596, 
	57625, 58142, 58660, 59177, 59695, 59701, 59707, 59201, 
	58695, 58189, 57682, 56663, 55644, 54624, 53604, 52584, 
	50691, 49670, 48137, 46604, 45071, 44050, 42516, 40983, 
	39449, 37915, 36381, 34336, 32802, 31268, 29734, 28200, 
	26666, 25133, 23599, 22066, 20532, 19511, 17978, 16445, 
	14912, 13891, 12871, 11339, 10319, 9299, 8792, 7773, 
	7267, 6760, 6254, 6260, 6266, 6784, 6790, 7307, 
	8337, 8854, 9882, 10911, 11939, 12967, 14506, 15534, 
	17073, 18612, 20150, 21689, 22716, 24254, 25792, 27331, 
	29381, 30919, 32457, 33995, 35534, 37072, 38610, 40148, 
	41687, 43225, 44764, 46302, 47841, 48868, 50407, 51947, 
	52974, 54002, 55031, 56059, 57088, 58117, 58634, 59152, 
	59158, 59676, 59682, 59176, 59182, 58676, 57657, 57150, 
	56131, 55111, 54091, 53071, 51539, 50518, 48985, 47452, 
	45919, 44385, 43364, 41830, 39937, 38403, 36357, 34823, 
	33290, 31756, 30222, 28688, 27154, 25621, 24087, 22553, 
	21020, 19486, 18465, 16932, 15399, 14379, 12846, 11826, 
	10806, 9786, 8767, 8260, 7242, 6735, 6741, 6235, 
	6241, 6759, 6765, 7282, 7800, 8829, 9346, 10374, 
	11402, 12942, 13970, 15509, 16536, 18075, 19614, 21153, 
	22691, 24230, 25768, 27307, 28845, 30383, 31921, 33459, 
	34998, 36536, 38074, 39612, 41151, 42689, 44228, 45766, 
	47305, 48844, 49871, 51410, 52438, 53978, 55006, 56034, 
	57063, 57580, 58609, 59127, 59133, 59651, 59657, 59663, 
	59157, 58650, 58144, 57125, 56618, 55598, 54579, 53046, 
	52026, 50493, 49473, 47940, 46406, 44873, 43340, 41806, 
	40785, 38739, 37205, 35671, 34137, 32604, 31070, 29536, 
	28002, 26468, 24935, 23041, 21508, 19974, 18441, 17420, 
	15887, 14866, 13334, 12313, 11293, 9762, 9254, 8235, 
	7728, 7222, 6716, 6209, 6215, 6221, 6739, 7257, 
	7775, 8292, 9321, 10349, 11378, 12406, 13433, 14973, 
	16000, 17539, 19078, 20617, 22155, 23694, 25232, 26770, 
	28309, 29847, 31385, 32923, 34461, 36000, 37538, 39076, 
	40614, 42153, 43691, 45230, 46769, 48307, 49335, 50874, 
	52413, 53441, 54469, 55497, 56526, 57555, 58072, 58590, 
	59107, 59625, 59631, 59637, 59131, 58625, 58119, 57612, 
	56593, 55573, 54554, 53534, 52514, 50981, 49960, 48427, 
	46894, 45361, 43827, 42294, 40760, 39227, 37693, 36159, 
	34625, 33091, 31558, 30024, 28490, 26956, 25423, 23889, 
	22355, 20822, 19289, 18267, 16734, 15202, 14181, 12289, 
	11269, 10249, 9229, 8722, 7703, 7197, 6690, 6184, 
	6190, 6196, 6714, 6720, 7237, 8267, 8784, 9812, 
	10841, 11869, 13409, 14436, 15975, 17003, 18542, 20080, 
	21619, 23157, 24696, 26234, 27772, 29311, 30849, 32387, 
	33925, 35463, 37002, 38540, 40078, 41617, 43155, 44694, 
	46232, 47771, 49310, 50337, 51877, 52904, 54444, 55472, 
	56501, 57018, 58047, 58564, 59082, 59600, 59606, 59612, 
	59106, 59112, 58606, 57587, 57080, 56061, 55041, 54021, 
	52489, 51468, 49936, 48915, 47382, 45849, 44315, 42782, 
	41248, 39714, 38181, 36647, 35113, 33579, 32045, 30512, 
	28978, 27444, 25910, 24377, 22843, 21310, 19776, 18243, 
	17222, 15689, 14668, 13136, 12116, 11096, 10076, 9057, 
	8550, 7171, 6665, 6671, 6165, 6171, 6689, 6695, 
	7212, 7730, 8759, 9787, 10304, 11844, 12872, 13900, 
	15439, 16466, 18005, 19544, 21083, 22621, 24160, 25698, 
	27236, 28775, 30313, 31851, 33389, 34927, 36465, 38004, 
	39542, 41080, 42619, 44157, 45696, 47235, 48774, 49801, 
	51340, 52368, 53908, 54936, 55964, 56993, 57510, 58539, 
	59057, 59063, 59581, 59587, 59081, 59087, 58580, 58074, 
	57055, 56036, 55528, 53996, 52976, 51956, 50423, 49402, 
	47869, 46336, 44803, 43269, 41736, 40202, 38669, 37135, 
	35601, 34067, 32533, 31000, 29466, 27932, 26398, 24864, 
	23331, 21797, 20264, 18731, 17710, 16177, 14644, 13623, 
	12603, 11071, 10052, 9544, 8525, 8018, 7512, 7006, 
	6499, 6145, 6151, 6669, 7187, 7705, 8222, 9251, 
	10279, 11307, 12335, 13363, 14903, 16442, 17469, 19008, 
	20546, 22085, 23623, 25162, 26700, 28238, 29777, 31315, 
	32853, 34391, 35929, 37468, 39006, 40544, 42083, 43621, 
	45160, 46698, 48237, 49776, 50804, 52343, 53371, 54399, 
	55427, 56456, 57485, 58002, 58520, 59037, 59555, 59561, 
	59567, 59061, 58555, 58049, 57542, 56523, 55503, 54484, 
	53464, 52443, 50911, 49378, 48357, 46824, 45291, 43757, 
	42224, 40690, 39156, 37623, 36089, 34555, 33021, 31487, 
	29954, 28420, 26886, 25352, 23819, 22285, 20752, 19218, 
	17685, 16664, 15131, 14111, 12579, 11558, 10539, 9519, 
	8500, 7993, 7487, 6980, 6474, 6480, 6486, 7004, 
	7010, 8039, 8197, 8714, 9742, 10771, 11799, 13338, 
	14366, 15905, 16932, 18471, 20010, 21549, 23087, 24626, 
	26164, 27702, 29240, 30779, 32317, 33855, 35393, 36931, 
	38470, 40008, 41546, 43085, 44623, 46162, 47701, 49240, 
	50267, 51807, 52834, 54374, 55402, 56431, 56948, 57977, 
	58494, 59012, 59530, 59536, 59542, 59036, 59042, 58535, 
	57517, 57010, 55991, 54971, 53951, 52419, 51398, 49866, 
	48845, 47312, 45778, 44245, 42711, 41178, 39644, 38110, 
	36577, 35043, 33509, 31975, 30441, 28908, 27374, 25840, 
	24306, 22773, 21239, 19706, 18173, 17152, 15619, 14086, 
	13066, 12046, 11026, 10006, 8987, 7968, 7461, 6955, 
	6961, 6455, 6461, 6979, 6985, 7502, 8020, 9049, 
	10077, 11106, 12134, 12802, 13829, 15369, 16908, 17935, 
	19474, 21012, 22551, 24089, 25628, 27166, 28704, 30242, 
	31781, 33319, 34857, 36395, 37933, 39472, 41522, 43061, 
	44087, 45626, 47165, 48703, 50243, 51270, 52810, 53837, 
	54866, 55894, 56923, 57440, 58469, 58987, 58993, 59511, 
	59517, 59011, 59017, 58510, 58004, 56985, 55966, 54946, 
	53926, 52906, 51886, 50353, 48820, 47799, 46266, 44733, 
	43199, 41666, 40132, 38598, 37065, 35531, 33997, 32463, 
	30929, 29395, 27862, 26328, 24794, 23261, 21727, 20194, 
	18660, 17127, 16106, 14574, 13553, 12021, 11001, 9981, 
	8962, 8455, 7948, 6930, 6936, 6429, 6435, 6441, 
	6959, 7477, 7994, 8512, 9540, 10569, 11597, 12625, 
	14165, 15192, 16732, 17759, 19297, 20836, 22375, 23553, 
	25092, 26630, 28168, 29706, 31245, 32783, 34321, 35859, 
	37397, 39448, 40986, 42524, 44063, 45089, 46628, 48167, 
	49706, 50733, 52273, 53301, 54329, 55869, 56386, 57415, 
	57932, 58450, 58967, 59485, 59491, 59497, 58991, 58485, 
	57979, 57472, 56453, 55433, 54414, 53394, 51861, 50841, 
	49308, 48287, 46754, 45220, 43687, 42153, 40620, 39086, 
	37552, 36019, 34485, 32951, 31417, 29883, 28349, 26816, 
	25282, 23748, 22215, 20681, 19148, 17615, 16594, 15061, 
	13529, 12508, 11488, 10469, 9449, 8430, 7923, 7417, 
	6910, 6404, 6410, 6416, 6934, 7452, 7969, 8487, 
	9516, 10032, 11061, 12601, 13628, 14656, 16195, 17734, 
	18761, 20300, 21838, 23377, 24915, 26454, 27992, 29530, 
	31068, 32607, 34145, 35683, 37733, 39271, 40450, 41988, 
	43527, 45065, 46092, 47631, 49170, 50709, 51736, 53276, 
	54304, 55332, 56361, 56878, 57907, 58424, 58942, 59460, 
	59466, 59472, 58966, 58460, 57953, 57447, 56428, 55920, 
	54901, 53369, 52349, 51328, 49795, 48263, 47241, 45708, 
	44175, 42641, 41108, 39574, 38040, 36506, 34973, 33439, 
	31905, 30371, 28837, 27304, 25770, 24236, 22703, 21169, 
	19636, 18103, 16570, 15549, 14016, 12996, 11976, 10444, 
	9936, 8917, 7898, 7391, 6885, 6891, 6385, 6391, 
	6909, 6915, 7432, 8462, 8979, 10007, 11036, 12064, 
	13092, 14631, 15659, 17198, 18737, 19764, 21302, 22841, 
	24379, 25918, 27456, 28994, 30532, 32070, 33609, 35659, 
	37197, 38735, 40274, 41812, 43350, 44889, 46428, 47454, 
	48993, 50532, 51560, 52739, 53767, 54795, 55824, 56853, 
	57882, 58399, 58917, 58923, 59441, 59447, 58941, 58947, 
	58440, 57934, 56915, 55896, 54876, 53856, 52836, 51304, 
	50283, 48750, 47217, 46196, 44663, 43129, 41595, 40062, 
	38528, 36994, 35461, 33927, 32393, 30859, 29325, 27791, 
	25746, 24212, 23190, 21657, 20124, 18590, 17057, 16036, 
	14504, 13483, 11951, 10931, 9911, 8892, 8385, 7366, 
	6860, 6866, 6360, 6365, 6371, 6889, 7407, 7924,                       //ok
	8954, 9470, 10499, 11527, 12555, 14095, 15122, 16661, 
	18200, 19227, 20766, 22304, 23843, 25381, 26920, 28458, 
	29996, 31534, 33072, 35123, 36661, 38199, 39737, 41276, 
	42814, 44353, 45891, 46918, 48457, 49996, 51535, 52563, 
	53591, 55131, 56159, 56676, 57345, 57862, 58380, 58897, 
	59415, 59421, 59427, 58921, 58415, 57909, 57402, 56383, 
	55363, 54343, 53323, 51791, 50770, 49238, 47705, 46684, 
	45150, 43617, 42083, 40550, 39016, 37482, 35948, 34415, 
	32881, 31347, 29301, 27767, 26234, 24700, 23166, 22145, 
	20611, 19078, 17545, 16012, 14991, 13459, 12438, 11418, 
	10398, 9379, 8360, 7853, 7347, 6840, 6334, 6340, 
	6346, 6864, 7382, 7899, 8417, 9445, 9962, 11502, 
	12530, 13558, 15098, 16125, 17664, 19203, 20230, 21768, 
	23307, 24845, 26383, 27922, 29460, 30998, 33048, 34587, 
	36125, 37663, 39201, 40739, 42278, 43816, 45355, 46894, 
	47920, 49460, 50999, 52026, 53566, 54594, 55622, 56651, 
	57680, 58197, 58714, 59232, 59750, 59396, 59402, 58896, 
	58390, 57883, 57377, 56358, 55850, 54831, 53299, 52278, 
	50746, 49725, 48192, 46659, 45638, 44105, 42571, 41037, 
	39504, 37970, 36436, 34902, 33369, 31835, 29789, 28255, 
	26721, 25188, 23654, 22120, 21099, 19566, 18032, 16499, 
	15479, 13946, 12926, 11393, 10374, 9354, 8847, 7828, 
	7321, 6815, 6821, 6315, 6321, 6839, 6845, 7362, 
	8391, 8909, 9937, 10966, 11994, 13022, 14561, 15588, 
	17128, 18667, 20205, 21232, 22771, 24309, 25847, 27386, 
	28924, 30462, 32512, 34050, 35589, 37127, 38665, 40203, 
	41742, 43280, 44819, 46357, 47896, 48923, 50462, 51490, 
	53029, 54057, 55085, 56114, 57143, 58172, 58689, 59207, 
	59213, 59731, 59737, 59231, 59237, 58370, 57352, 56845, 
	55825, 54806, 53786, 52766, 51233, 50213, 48680, 47147, 
	45614, 44592, 43059, 41525, 39992, 38458, 36924, 35390, 
	33856, 31811, 30277, 28743, 27209, 25675, 24142, 22608, 
	21075, 20053, 18520, 16987, 15454, 14433, 12901, 11881, 
	10861, 9841, 8822, 8315, 7296, 6790, 6796, 6290, 
	6296, 6301, 6819, 7337, 7854, 8884, 9400, 10429, 
	11457, 12997, 14025, 15564, 16591, 18130, 19669, 20696, 
	22234, 23773, 25311, 26849, 28388, 30438, 31976, 33514, 
	35052, 36591, 38129, 39667, 41205, 42744, 44282, 45821, 
	47360, 48387, 49926, 51465, 52493, 54032, 55061, 56089, 
	57118, 57635, 58152, 59182, 59187, 59705, 59711, 59717, 
	59211, 58705, 58199, 57180, 56673, 55653, 54273, 52741, 
	51721, 50188, 49168, 47635, 46101, 44568, 43547, 42013, 
	40479, 38946, 37412, 35878, 33832, 32298, 30765, 29231, 
	27697, 26163, 24630, 23096, 21562, 20029, 19008, 17475, 
	15942, 14921, 13388, 12368, 11348, 10328, 9309, 8290, 
	7783, 7277, 6770, 6264, 6270, 6276, 6794, 7312, 
	7829, 8347, 9375, 10404, 11432, 12460, 13488, 15028, 
	16055, 17594, 19133, 20671, 22210, 23237, 24775, 26313, 
	27852, 29902, 31440, 32978, 34516, 36054, 37593, 39131, 
	40669, 42208, 43746, 45285, 46823, 48362, 49389, 50929, 
	51956, 53496, 54524, 55552, 56581, 57610, 58127, 58644, 
	59162, 59680, 59686, 59692, 59186, 58680, 58173, 57667, 
	56648, 55628, 54609, 53589, 52568, 51036, 50015, 48482, 
	46949, 45416, 43522, 42501, 40967, 39434, 37900, 35854, 
	34320, 32786, 31253, 29719, 28185, 26651, 25117, 23584, 
	22050, 20517, 18983, 17962, 16429, 14896, 13876, 12855, 
	11323, 10304, 9284, 8777, 7758, 7251, 6745, 6239, 
	6245, 6251, 6769, 6775, 7292, 8321, 8838, 9867, 
	10896, 11924, 12951, 14491, 15518, 17057, 18596, 20135, 
	21674, 23212, 24239, 26289, 27827, 29366, 30904, 32442, 
	33980, 35518, 37057, 38595, 40133, 41671, 43210, 44748, 
	46287, 47826, 48853, 50392, 51931, 52959, 53987, 55527, 
	56044, 57073, 58102, 58619, 59137, 59143, 59661, 59667, 
	59161, 59167, 58660, 57642, 57135, 56115, 55096, 54076, 
	53056, 51523, 50503, 48970, 47437, 45903, 44370, 42837, 
	41815, 40281, 38236, 36702, 35168, 33634, 32100, 30567, 
	28673, 27139, 25605, 24072, 22538, 21005, 19471, 18450, 
	16917, 15384, 14363, 12831, 11811, 10791, 9771, 8752, 
	8245, 7226, 6720, 6726, 6220, 6226, 6744, 6749, 
	7267, 7784, 8813, 9330, 10359, 11387, 12927, 13954, 
	15494, 16521, 18060, 19599, 21137, 22676, 24215, 25753, 
	27291, 28829, 30368, 31906, 33444, 34982, 36520, 38059, 
	39597, 41135, 42674, 44212, 45751, 47290, 48829, 49856, 
	51395, 52423, 53962, 54990, 56019, 57048, 57565, 58594, 
	59112, 59117, 59635, 59641, 59647, 59141, 58635, 58129, 
	57110, 56602, 55583, 54563, 53031, 52011, 50478, 49457, 
	47924, 46391, 44858, 43324, 41791, 40257, 38723, 37190, 
	35656, 34122, 32588, 31054, 29521, 27987, 26453, 24919, 
	23386, 21852, 20319, 18786, 17764, 16232, 14339, 13318, 
	12298, 10766, 9746, 9239, 8220, 7713, 7207, 6700, 
	6194, 6200, 6206, 6724, 7242, 7759, 8276, 9305, 
	10334, 11362, 12390, 13418, 14957, 15985, 17524, 19062, 
	20601, 22140, 23678, 25217, 26755, 28293, 29831, 31370, 
	32908, 34446, 35984, 37522, 39061, 40599, 42137, 43676, 
	45214, 46753, 48292, 49319, 50858, 52398, 53426, 54454, 
	55482, 56511, 57540, 58057, 58574, 59092, 59610, 59616, 
	59622, 59116, 58610, 58103, 57597, 56578, 55558, 54538, 
	53518, 52498, 50966, 49945, 48412, 46879, 45346, 43812, 
	42279, 40745, 39211, 37678, 36144, 34610, 33076, 31542, 
	30008, 28475, 26941, 25407, 23874, 22340, 20807, 19273, 
	18252, 16719, 15186, 14166, 12633, 11613, 10593, 9574, 
	8707, 7688, 7181, 6675, 6169, 6175, 6181, 6699, 
	6705, 7222, 8251, 8768, 9797, 10825, 11854, 13393, 
	14421, 15960, 16987, 18526, 20065, 21604, 23142, 24680, 
	26219, 27757, 29295, 30834, 32372, 33910, 35448, 36986, 
	38525, 40063, 41601, 43140, 44678, 46217, 47756, 49295, 
	50322, 51861, 52889, 54429, 55457, 56486, 57002, 58032, 
	58549, 59067, 59585, 59591, 59597, 59091, 59097, 58590, 
	57572, 57065, 56045, 55026, 54006, 52474, 51453, 49920, 
	48900, 47366, 45833, 44300, 42766, 41233, 39699, 38165, 
	36632, 35098, 33564, 32030, 30496, 28962, 27429, 25895, 
	24361, 22828, 21294, 19761, 18228, 17207, 15674, 14653, 
	13121, 12101, 11081, 10061, 9042, 8023, 7516, 7010, 
	7016, 6150, 6156, 6673, 6679, 7197, 7714, 8743, 
	9772, 10801, 11829, 12857, 13884, 15424, 16451, 17990, 
	19529, 21067, 22606, 24144, 25683, 27221, 28759, 30297, 
	31836, 33374, 34912, 36450, 37988, 39527, 41065, 42603, 
	44142, 45681, 47219, 48758, 49785, 51325, 52864, 53892, 
	54920, 55949, 56977, 57495, 58524, 59042, 59047, 59565, 
	59571, 59065, 59071, 58565, 58058, 57040, 56020, 55513, 
	53981, 52961, 51941, 50408, 49387, 47854, 46321, 44788, 
	43254, 41721, 40187, 38653, 37119, 35586, 34052, 32518, 
	30984, 29450, 27917, 26383, 24849, 23316, 21782, 20249, 
	18715, 17694, 16161, 14629, 13608, 12588, 11056, 10036, 
	9529, 8510, 8003, 7497, 6990, 6484, 6490, 6496, 
	7014, 7172, 7689, 8206, 9235, 10264, 11292, 12320, 
	13860, 14887, 16426, 17453, 18992, 20531, 22070, 23608, 
	25146, 26685, 28223, 29761, 31299, 32838, 34376, 35914, 
	37452, 38990, 40529, 42067, 43606, 45144, 46683, 48222, 
	49761, 50788, 52328, 53356, 54384, 55412, 56441, 57469, 
	57987, 58504, 59022, 59540, 59546, 59552, 59046, 58540, 
	58033, 57527, 56507, 55488, 54468, 53448, 51916, 50895, 
	49363, 48342, 46809, 45275, 43742, 42208, 40675, 39141, 
	37607, 36074, 34540, 33006, 31472, 29938, 28404, 26871, 
	25337, 23803, 22270, 20736, 19203, 17670, 16649, 15116, 
	14096, 12563, 11543, 10523, 9504, 8485, 7978, 7471, 
	6965, 6459, 6465, 6471, 6989, 7507, 8024, 8541, 
	9058, 10087, 10755, 11783, 13323, 14351, 15890, 17429, 
	18456, 19995, 21533, 23072, 24610, 26149, 27687, 29225, 
	30763, 32301, 33840, 35378, 36916, 38454, 39993, 41531, 
	43069, 44608, 46147, 47686, 49225, 50252, 51791, 52819, 
	54359, 55387, 56416, 56932, 57962, 58479, 58997, 59515, 
	59521, 59527, 59021, 59027, 58008, 57502, 56995, 55975, 
	54956, 53936, 52403, 51383, 49850, 48317, 47296, 45763, 
	44230, 42696, 41163, 39629, 38095, 36561, 35028, 33494, 
	31960, 30426, 28892, 27358, 25825, 24291, 22758, 21224, 
	19691, 18158, 16624, 15604, 14071, 13051, 12030, 11011, 
	9991, 8972, 7953, 7446, 6940, 6946, 6440, 6446, 
	6963, 6969, 7487, 8004, 9033, 10062, 11091, 12119, 
	13147, 14174, 15713, 17253, 18280, 19458, 20997, 22536, 
	24074, 25612, 27151, 28689, 30227, 31765, 33303, 34842, 
	36380, 38430, 39968, 41507, 43045, 44072, 45610, 47149, 
	48688, 50227, 51255, 52794, 53822, 54850, 55879, 56907, 
	57424, 58454, 58972, 58977, 59495, 59501, 58995, 59001, 
	58495, 57988, 56970, 55950, 54931, 53911, 52891, 51870, 
	50338, 48805, 47784, 46251, 44717, 43184, 41650, 40117, 
	38583, 37049, 35515, 33982, 32448, 30914, 29380, 27846, 
	26313, 24779, 23245, 21712, 20178, 18645, 17112, 16091, 
	14558, 13538, 12006, 10986, 9966, 8947, 8440, 7933, 
	6915, 6920, 6414, 6420, 6426, 6944, 7462, 7979, 
	8496, 9525, 10554, 11582, 12610, 14150, 15177, 16716, 
	18255, 19282, 20821, 22359, 23898, 25436, 26975, 28513, 
	30051, 31589, 33127, 34306, 35844, 37894, 39432, 40971, 
	42509, 44047, 45074, 46613, 48152, 49691, 50718, 52258, 
	53285, 54313, 55854, 56370, 57399, 57917, 58434, 58952, 
	59470, 59476, 59482, 58976, 58470, 57963, 57456, 56437, 
	55418, 54398, 53378, 51846, 50825, 49293, 47760, 46738, 
	45205, 43672, 42138, 40605, 39071, 37537, 36003, 34469, 
	32936, 31402, 29868, 28334, 26800, 25267, 23733, 22200, 
	20666, 19133, 17600, 16067, 15046, 13513, 12493, 11473, 
	10453, 9434, 8415, 7908, 7401, 6895, 6389, 6395, 
	6401, 6919, 7437, 7954, 8471, 9500, 10017, 11045,          //ok
	12585, 13613, 14640, 16180, 17719, 18746, 20284, 21823, 
	23362, 24900, 26438, 27977, 29515, 31053, 32591, 34129, 
	36180, 37718, 39256, 40794, 42333, 43871, 45410, 46436, 
	47975, 49154, 50694, 51721, 53261, 54289, 55317, 56345, 
	57374, 57892, 58409, 58927, 59445, 59451, 59457, 58951, 
	58445, 57938, 57431, 56412, 55905, 54885, 53354, 52333, 
	51313, 49780, 48247, 47226, 45693, 44159, 42626, 41092, 
	39559, 38025, 36491, 34957, 33423, 31890, 30356, 28822, 
	26776, 25243, 23709, 22687, 21154, 19621, 18087, 16554, 
	15533, 14001, 12980, 11960, 10428, 9409, 8902, 7883, 
	7376, 6870, 6876, 6370, 6376, 6893, 6899, 7417, 
	8446, 8963, 9992, 11020, 12049, 13076, 14616, 15643, 
	17182, 18721, 19748, 21287, 22825, 24364, 25902, 27440, 
	28979, 30517, 32055, 33593, 35643, 37182, 38720, 40258, 
	41797, 43335, 44873, 46412, 47439, 48978, 50517, 51544, 
	53084, 54112, 55140, 55809, 56837, 57866, 58384, 58902, 
	58907, 59425, 59431, 58925, 58931, 58425, 57918, 56899, 
	55880, 54861, 53841, 52821, 51288, 50268, 48735, 47202, 
	46181, 44647, 43114, 41580, 40046, 38513, 36979, 35445, 
	33911, 32377, 30844, 28798, 27264, 25730, 24197, 22663, 
	21642, 20108, 18575, 17042, 16021, 14488, 13468, 11936, 
	10916, 9896, 8877, 8370, 7351, 6845, 6850, 6344, 
	6350, 6356, 6874, 7392, 7909, 8938, 9455, 10484, 
	11512, 12540, 14079, 15107, 16646, 18185, 19212, 20751, 
	22289, 23828, 25366, 26904, 28443, 29981, 31519, 33569, 
	35107, 36645, 38184, 39722, 41260, 42799, 44337, 45876, 
	47415, 48442, 49981, 51520, 52547, 53575, 55115, 56144, 
	56660, 57689, 58207, 58724, 58882, 59400, 59406, 59412, 
	58906, 58400, 57893, 56874, 56367, 55348, 54328, 53308, 
	51776, 50755, 49222, 47689, 46156, 45135, 43601, 42068, 
	40534, 39001, 37467, 35933, 34399, 32865, 30820, 29286, 
	27752, 26218, 24684, 23151, 21617, 20596, 19063, 17529, 
	15997, 14976, 13443, 12423, 11403, 10383, 9364, 8345, 
	7838, 7331, 6825, 6319, 6325, 6331, 6849, 7367, 
	7884, 8401, 9430, 10459, 11487, 12515, 13543, 15082, 
	16110, 17649, 19188, 20214, 21753, 23291, 24830, 26368, 
	27906, 29445, 30983, 33033, 34571, 36109, 37648, 39186, 
	40724, 42262, 43801, 45340, 46878, 47905, 49444, 50983, 
	52011, 53551, 54579, 55607, 56635, 57664, 58182, 58699, 
	59217, 59735, 59741, 59747, 58881, 58375, 57868, 57361, 
	56342, 55835, 54303, 53283, 52263, 50731, 49710, 48177, 
	46644, 45623, 44089, 42556, 41022, 39488, 37955, 36421, 
	34887, 32841, 31307, 29774, 28240, 26706, 25172, 23639, 
	22105, 20572, 19550, 18017, 16484, 15463, 13931, 12910, 
	11378, 10358, 9339, 8832, 7813, 7306, 6800, 6806, 
	6300, 6306, 6823, 6829, 7347, 8376, 8893, 9922, 
	10950, 11978, 13006, 14546, 15573, 17112, 18651, 20190, 
	21217, 22755, 24294, 25832, 27370, 28908, 30959, 32497, 
	34035, 35573, 37111, 38650, 40188, 41726, 43265, 44803, 
	46342, 47881, 48908, 50447, 51986, 53014, 54042, 55070, 
	56098, 57127, 58156, 58674, 59192, 59197, 59715, 59721, 
	59215, 59221, 58715, 57696, 57189, 55810, 54791, 53771, 
	52751, 51218, 50197, 48665, 47132, 45598, 44577, 43043, 
	41510, 39976, 38443, 36909, 35375, 33329, 31795, 30261, 
	28728, 27194, 25660, 24126, 22593, 21059, 19526, 18505, 
	16972, 15439, 14418, 12886, 11865, 10846, 9826, 8807, 
	8300, 7281, 6775, 6780, 6274, 6280, 6798, 6804, 
	7322, 7839, 8868, 9385, 10414, 11442, 12982, 14009, 
	15549, 16576, 18115, 19654, 21192, 22219, 23757, 25296, 
	26834, 28372, 30422, 31961, 33499, 35037, 36575, 38114, 
	39652, 41190, 42729, 44267, 45806, 47345, 48883, 49911, 
	51450, 52477, 54017, 55045, 56074, 57102, 57619, 58649, 
	59166, 59172, 59690, 59696, 59702, 59196, 58690, 58183, 
	57165, 56657, 55638, 54618, 53086, 52066, 50533, 49152, 
	47619, 46086, 44553, 43019, 41486, 39952, 38418, 36885, 
	35351, 33817, 32283, 30749, 29216, 27682, 26148, 24614, 
	23081, 21547, 20014, 18481, 17459, 15926, 14394, 13373, 
	12353, 10821, 9801, 9294, 8275, 7768, 7262, 6755, 
	6249, 6255, 6261, 6779, 7297, 7814, 8331, 9360, 
	10389, 11417, 12445, 13473, 15012, 16040, 17579, 19117, 
	20656, 22195, 23733, 25272, 26810, 28348, 29886, 31425, 
	32963, 34501, 36039, 37577, 39116, 40654, 42192, 43731, 
	45269, 46808, 48347, 49374, 50913, 52453, 53481, 54509, 
	55537, 56566, 57594, 58112, 58629, 59147, 59665, 59671, 
	59677, 59171, 58665, 58158, 57652, 56632, 55613, 54593, 
	53573, 52553, 51021, 50000, 48467, 46934, 45400, 43867, 
	42334, 40800, 39266, 37733, 36199, 34305, 32771, 31237, 
	29703, 28170, 26636, 25102, 23569, 22035, 20502, 18968, 
	17947, 16414, 14881, 13861, 12328, 11308, 10288, 9269, 
	8762, 7743, 7236, 6730, 6224, 6230, 6236, 6754, 
	6760, 7277, 8306, 8823, 9852, 10880, 11908, 13448, 
	14476, 16015, 17042, 18581, 20120, 21659, 23197, 24735, 
	26274, 27812, 29350, 30888, 32427, 33965, 35503, 37041, 
	38579, 40118, 41656, 43195, 44733, 46272, 47811, 49350, 
	50377, 51916, 52944, 54484, 55512, 56541, 57057, 58087, 
	58604, 59122, 59640, 59646, 59652, 59146, 59152, 58645, 
	57626, 57120, 56100, 55081, 54061, 52529, 51508, 49975, 
	48955, 47421, 45888, 44355, 42821, 41288, 39754, 38220, 
	36687, 35153, 33619, 32085, 30551, 29017, 27484, 25950, 
	24416, 22883, 21349, 19816, 17923, 16902, 15369, 14348, 
	12816, 11796, 10776, 9756, 8737, 7718, 7211, 6705, 
	6711, 6205, 6210, 6728, 6734, 7252, 7769, 8798, 
	9827, 10344, 11884, 12912, 13939, 15479, 16506, 18045, 
	19584, 21122, 22661, 24199, 25738, 27276, 28814, 30352, 
	31891, 33429, 34967, 36505, 38043, 39582, 41120, 42658, 
	44197, 45736, 47274, 48813, 49840, 51380, 52407, 53947, 
	54975, 56004, 57032, 57549, 58579, 59096, 59102, 59620, 
	59626, 59120, 59126, 58620, 58113, 57095, 56075, 55568, 
	54036, 53016, 51996, 50463, 49442, 47909, 46376, 44843, 
	43309, 41776, 40242, 38708, 37174, 35641, 34107, 32573, 
	31039, 29505, 27972, 26438, 24904, 23371, 21837, 20304, 
	18770, 17749, 16216, 14684, 13663, 12643, 11111, 9731, 
	9224, 8205, 7698, 7192, 6685, 6179, 6185, 6191, 
	6709, 7227, 7744, 8261, 9290, 10319, 11347, 12375, 
	13915, 14942, 16481, 17508, 19047, 20586, 22125, 23663, 
	25201, 26740, 28278, 29816, 31354, 32893, 34431, 35969, 
	37507, 39045, 40584, 42122, 43661, 45199, 46738, 48277, 
	49816, 50843, 52383, 53410, 54439, 55467, 56495, 57524, 
	58042, 58559, 59077, 59595, 59601, 59607, 59101, 58595, 
	58088, 57582, 56562, 55543, 54523, 53503, 51971, 50950, 
	49418, 48397, 46864, 45330, 43797, 42263, 40730, 39196, 
	37662, 36128, 34595, 33061, 31527, 29993, 28459, 26926, 
	25392, 23858, 22325, 20791, 19258, 17725, 16704, 15171, 
	14151, 12618, 11598, 10578, 9559, 8540, 8033, 7526, 
	6660, 6154, 6160, 6166, 6684, 7202, 7719, 8236, 
	8753, 9782, 10810, 11838, 13378, 14406, 15945, 16972, 
	18511, 20050, 21588, 23127, 24665, 26204, 27742, 29280, 
	30818, 32356, 33895, 35433, 36971, 38509, 40048, 41586, 
	43124, 44663, 46202, 47741, 49280, 50307, 51846, 52874, 
	54414, 55442, 56471, 56987, 58017, 58534, 59052, 59570, 
	59576, 59582, 59076, 59082, 58063, 57556, 57049, 56030, 
	55011, 53991, 52458, 51438, 49905, 48372, 47351, 45818, 
	44285, 42751, 41218, 39684, 38150, 36616, 35083, 33549, 
	32015, 30481, 28947, 27413, 25880, 24346, 22813, 21279, 
	19746, 18213, 16679, 15659, 14126, 13106, 12085, 11066, 
	10046, 9027, 8008, 7501, 6995, 7001, 6495, 6501, 
	6659, 6664, 7182, 7699, 8728, 9757, 10786, 11814, 
	12842, 13869, 15408, 16948, 17975, 19513, 21052, 22591, 
	24129, 25667, 27206, 28744, 30282, 31820, 33358, 34897, 
	36435, 38485, 40023, 41562, 43100, 44127, 45665, 47204, 
	48743, 50282, 51310, 52849, 53877, 54905, 55934, 56962, 
	57479, 58509, 59027, 59032, 59550, 59556, 59050, 59056, 
	58550, 58043, 57025, 56005, 54986, 53966, 52946, 51925, 
	50393, 48860, 47839, 46306, 44772, 43239, 41705, 40172, 
	38638, 37104, 35570, 34037, 32503, 30969, 29435, 27901, 
	26368, 24834, 23300, 21767, 20233, 18700, 17167, 16146, 
	14613, 13593, 12061, 11041, 10021, 9002, 8495, 7988, 
	6970, 6975, 6469, 6475, 6481, 6999, 7517, 8034, 
	8551, 9220, 10249, 11277, 12305, 13845, 14872, 16411, 
	17950, 18977, 20516, 22054, 23593, 25131, 26670, 28208, 
	29746, 31284, 32822, 34361, 35899, 37949, 39487, 41026, 
	42564, 44102, 45129, 46668, 48207, 49746, 50773, 52313, 
	53340, 54880, 55909, 56425, 57454, 57972, 58489, 59007, 
	59525, 59531, 59537, 59031, 58525, 58018, 57512, 56492, 
	55473, 54453, 53433, 51901, 50880, 49348, 47815, 46793, 
	45260, 43727, 42193, 40660, 39126, 37592, 36058, 34524, 
	32991, 31457, 29923, 28389, 26855, 25322, 23788, 22255, 
	20721, 19188, 17655, 16122, 15101, 13568, 12548, 11528, 
	10508, 9489, 8470, 7963, 7456, 6950, 6444, 6450, 
	6456, 6974, 7492, 8009, 8526, 9555, 10072, 11100, 
	12640, 13668, 14696, 15875, 17414, 18441, 19980, 21518, 
	23057, 24595, 26133, 27672, 29210, 30748, 32286, 33824, 
	35875, 37413, 38951, 40489, 42028, 43566, 45105, 46131, 
	47670, 49209, 50749, 51776, 53316, 54344, 55372, 56401, 
	57429, 57947, 58464, 58982, 59500, 59506, 59512, 59006, 
	58500, 57993, 57486, 56467, 55960, 54940, 53409, 52388, 
	51368, 49835, 48302, 47281, 45748, 44214, 42681, 41147, 
	39614, 38080, 36546, 35012, 33478, 31945, 30411, 28365, 
	26831, 25298, 23764, 22742, 21209, 19676, 18142, 16609, 
	15588, 14056, 13035, 11503, 10484, 9464, 8957, 7938, 
	7431, 6925, 6931, 6425, 6431, 6949, 6954, 7472, 
	8501, 9018, 10047, 11075, 12104, 13131, 14671, 15698, 
	17237, 18776, 19803, 21342, 22880, 24419, 25957, 27495, 
	28674, 30212, 31750, 33800, 35338, 36877, 38415, 39953, 
	41492, 43030, 44569, 46107, 47134, 48673, 50212, 51239, 
	52779, 53807, 54835, 55864, 56892, 57922, 58439, 58957, 
	58962, 59480, 59487, 58981, 58986, 58480, 57461, 56955, 
	55935, 54916, 53896, 52876, 51343, 50323, 48790, 47257, 
	46236, 44702, 43169, 41635, 40101, 38568, 37034, 35500, 
	33966, 32433, 30387, 28853, 27319, 25785, 24252, 22718, 
	21185, 20163, 18630, 17097, 15564, 14543, 13011, 11991, 
	10971, 9951, 8932, 8425, 7406, 6900, 6905, 6399, 
	6405, 6411, 6929, 7447, 7964, 8993, 9510, 10539, 
	11567, 13107, 14134, 15162, 16701, 18240, 19779, 20806, 
	22344, 23883, 25421, 26959, 28498, 30036, 31574, 33624, 
	35162, 36700, 38239, 39777, 41315, 42854, 44032, 45571, 
	47110, 48137, 49676, 51215, 52242, 53270, 54810, 55839, 
	56867, 57384, 57902, 58931, 58937, 59455, 59461, 59467, 
	58961, 58455, 57948, 56930, 56422, 55403, 54383, 52851, 
	51831, 50810, 49277, 47744, 46211, 45190, 43656, 42123, 
	40589, 39056, 37522, 35988, 34454, 32408, 30875, 29341, 
	27807, 26273, 24740, 23206, 21672, 20651, 19118, 17585, 
	16052, 15031, 13498, 12478, 11458, 10438, 9419, 8400, 
	7893, 7386, 6880, 6374, 6380, 6386, 6904, 7422, 
	7939, 8456, 9485, 10514, 11542, 12570, 13598, 15137, 
	16165, 17704, 19243, 20781, 21808, 23346, 24885, 26423, 
	27961, 29500, 31550, 33088, 34626, 36164, 37703, 39241, 
	40779, 42318, 43856, 45395, 46933, 47960, 49499, 51038, 
	52066, 53606, 54274, 55302, 56330, 57359, 57877, 58394, 
	58912, 59430, 59436, 59442, 58936, 58430, 57923, 57416, 
	56397, 55378, 54358, 53338, 52318, 50786, 49765, 48232, 
	46699, 45166, 44144, 42611, 41077, 39543, 38010, 36476, 
	34430, 32896, 31362, 29829, 28295, 26761, 25227, 23694, 
	22160, 20627, 19605, 18072, 16539, 15006, 13986, 12965, 
	11433, 10413, 9394, 8887, 7868, 7361, 6855, 6349, 
	6355, 6361, 6879, 6884, 7402, 8431, 8948, 9977, 
	11005, 12034, 13061, 14601, 15628, 17167, 18706, 20245, 
	21784, 22810, 24349, 25887, 27425, 29475, 31014, 32552, 
	34090, 35628, 37166, 38705, 40243, 41781, 43320, 44858, 
	46397, 47936, 48963, 50502, 52041, 53069, 54097, 55125, 
	56154, 57182, 58212, 58369, 58887, 58893, 59411, 59417, 
	58911, 58916, 58410, 57391, 56885, 55865, 54846, 53826, 
	52806, 51273, 50253, 48720, 47187, 45653, 44120, 43099, 
	41565, 40031, 38498, 36452, 34918, 33384, 31850, 30316, 
	28783, 27249, 25715, 24181, 22648, 21114, 19581, 18560, 
	17027, 15494, 14473, 12941, 11921, 10901, 9881, 8862, 
	8355, 7336, 6830, 6835, 6329, 6335, 6853, 6859, 
	7377, 7894, 8923, 9440, 10469, 11497, 13037, 14064, 
	15604, 16631, 18170, 19709, 21247, 22786, 23812, 25351, 
	27401, 28939, 30478, 32016, 33554, 35092, 36630, 38169, 
	39707, 41245, 42784, 44322, 45861, 47399, 48938, 49966, 
	51505, 52532, 54072, 55100, 56129, 57157, 57674, 58704, 
	59221, 59227, 59745, 59751, 59397, 58891, 58385, 57878, 
	56860, 56352, 55333, 54313, 52781, 51761, 50228, 49207, 
	47674, 46141, 44608, 43074, 41541, 40007, 38473, 36940, 
	35406, 33872, 32338, 30804, 29271, 27737, 26203, 24669, 
	23136, 21602, 20069, 18536, 17514, 15981, 14449, 13428, 
	12408, 10876, 9856, 9349, 8330, 7823, 7316, 6810, 
	6304, 6310, 6316, 6834, 7352, 7869, 8386, 9415, 
	10444, 11472, 12500, 13528, 15067, 16095, 17634, 19172,  // ok
	20711, 22250, 23788, 25327, 26865, 28403, 29941, 31480, 
	33018, 34556, 36094, 37632, 39171, 40709, 42247, 43786, 
	45324, 46863, 48402, 49429, 50968, 52508, 53536, 54564, 
	55592, 56620, 57649, 58167, 58684, 59202, 59720, 59726, 
	59732, 59226, 58720, 58213, 57347, 56327, 55308, 54288, 
	53268, 52248, 50716, 49695, 48162, 46629, 45095, 43562, 
	42029, 40495, 38961, 37427, 35894, 34360, 32826, 31292, 
	29758, 28225, 26691, 25157, 23623, 22090, 20557, 19023, 
	18002, 16469, 14936, 13916, 12383, 11363, 10343, 9324    /*, // last datapoint: Thu Feb 16 11:31:00 2012
	8817, 7798, 7291, 6785, 6279, 6285, 6291, 6809,
	6814, 7332, 8361, 8878, 9907, 10935, 11963, 13503,        // timeout 
	14531, 16070, 17097, 18636, 20175, 21713, 23252, 24790, 
	26329, 27867, 29405, 30943, 32482, 34020, 35558, 37096, 
	38634, 40173, 41711, 43250, 44788, 46327, 47866, 49405, 
	50432, 51971, 52999, 54027, 55567, 56596, 57112, 58142, 
	58659, 59177, 59695, 59701, 59707, 59201, 59206, 58700, 
	57681, 57174, 56155, 55136, 54116, 52584, 51203, 49670, 
	48649, 47116, 45583, 44050, 42516, 40983, 39449, 37915, 
	36382, 34848, 33314, 31780, 30246, 28712, 27179, 25645, 
	24111, 22578, 21044, 19511, 17978, 16957, 15424, 14403, 
	12871, 11851, 10831, 9811, 8792, 7773, 7266, 6760, 
	6766, 6259, 6265, 6783, 6789, 7307, 7824, 8853, 
	9882, 10399, 11939, 12967, 13994, 15534, 16561, 18100, // timeout
	19639, 21177, 22716, 24254, 25793, 27331, 28869, 30407, 
	31946, 33484, 35022, 36560, 38098, 39637, 41175, 42713, 
	44252, 45791, 47329, 48868, 49895, 51435, 52462, 54002, 
	55030, 56059, 57087, 57604, 58634, 59151, 59157, 59675,  // timeout
	59681, 59175, 59181, 58675, 58168, 57150, 56130, 55623, 
	54091, 53071, 52051, 50518, 49497, 47964, 46431, 44898, 
	43364, 41831, 39937, 38403, 36869, 35336, 33802, 32268, 
	30734, 29200, 27667, 26133, 24599, 23066, 21532, 19999, 
	18465, 17444, 15911, 14379, 13358, 12338, 10806, 9786, 
	9279, 8260, 7753, 7247, 6740, 6234, 6240, 6246, 
	6764, 7282, 7799, 8316, 9345, 10374, 11402, 12430,    // timeout 
	13970, 14997, 16536, 17563, 19102, 20641, 22180, 23718, 
	25256, 26795, 28333, 29871, 31409, 32948, 34486, 36024, 
	37562, 39100, 40639, 42177, 43716, 45254, 46793, 48332, 
	49871, 50898, 52438, 53465, 54493, 55522, 56550, 57579, 
	58097, 58614, 59132, 59650, 59656, 59662, 59156, 58650, 
	58143, 57637, 56617, 55598, 54578, 53558, 52026, 51005, 
	49473, 48452, 46919, 45385, 43852, 42318, 40785, 39251, 
	37717, 36183, 34650, 33116, 31582, 30048, 28514, 26981, 
	25447, 23553, 22020, 20486, 18953, 17420, 16399, 14866, 
	13846, 12313, 11293, 10273, 9254, 8235, 7728, 7221, 
	6715, 6209, 6215, 6221, 6739, 7257, 7774, 8291, 
	8808, 9837, 10865, 11893, 13433, 14461, 16000, 17027, 
	18566, 20105, 21643, 23182, 24720, 26259, 27797, 29335, 
	30873, 32411, 33950, 35488, 37026, 38564, 40103, 41641, 
	43179, 44718, 46257, 47795, 49335, 50362, 51901, 52929, 
	54469, 55497, 56526, 57042, 58072, 58589, 59107, 59625, 
	59631, 59637, 59131, 59137, 58118, 57611, 57104, 56085, 
	55066, 54046, 52513, 51493, 49960, 48427, 47406, 45873, 
	44340, 42806, 41273, 39739, 38205, 36671, 35138, 33604, 
	32070, 30536, 29002, 27468, 25935, 24401, 22868, 21334, 
	19801, 18268, 16734, 15714, 14181, 12801, 11780, 10761, 
	9741, 8722, 7703, 7196, 6690, 6696, 6190, 6196, 
	6714, 6719, 7237, 7754, 8783, 9812, 10841, 11869, 
	12897, 13924, 15463, 17003, 18030, 19568, 21107, 22646, 
	24184, 25722, 27261, 28799, 30337, 31875, 33413, 34952, 
	36490, 38540, 40078, 41617, 43155, 44182, 45720, 47259, 
	48798, 50337, 51365, 52904, 53932, 54960, 55989, 57017, 
	57534, 58564, 59082, 59087, 59605, 59611, 59105, 59111, 
	58605, 58098, 57080, 56060, 55041, 54021, 53001, 51980, 
	50448, 48915, 47894, 46361, 44827, 43294, 41760, 40227, 
	38693, 37159, 35625, 34092, 32558, 31024, 29490, 27956, 
	26423, 24889, 23355, 21822, 20288, 18755, 17222, 16201, 
	14668, 13648, 12116, 11096, 10076, 9057, 8550, 7683, 
	6665, 6670, 6164, 6170, 6176, 6694, 7212, 7729, 
	8246, 9275, 10304, 11332, 12360, 13900, 14927, 16466,  // timeout 
	18005, 19032, 20571, 22109, 23648, 25186, 26725, 28263, 
	29801, 31339, 32877, 34416, 35954, 38004, 39542, 41081, 
	42619, 44157, 45184, 46723, 48262, 49801, 50828, 52368, 
	53395, 54935, 55964, 56480, 57509, 58027, 58544, 59062, 
	59580, 59586, 59592, 59086, 58580, 58073, 57567, 56547, 
	55528, 54508, 53488, 51956, 50935, 49403, 47870, 46848, 
	45315, 43782, 42248, 40715, 39181, 37647, 36113, 34579, 
	33046, 31512, 29978, 28444, 26398, 24865, 23843, 22310, 
	20776, 19243, 17710, 16177, 15156, 13623, 12603, 11583, 
	10563, 9544, 8525, 8018, 7511, 7005, 6499, 6145, 
	6151, 6669, 7187, 7704, 8221, 9250, 9767, 10795, 
	12335, 13363, 14391, 15930, 17469, 18496, 20035, 21573, 
	23112, 24650, 26188, 27727, 29265, 30803, 32341, 33879, 
	35930, 37468, 39006, 40544, 42083, 43621, 45160, 46186, 
	47725, 49264, 50804, 51831, 53371, 54399, 55427, 56456, 
	57484, 58002, 58519, 59037, 59555, 59561, 59567, 59061, 
	58555, 58048, 57542, 56522, 56015, 54996, 53464, 52443, 
	51423, 49890, 48357, 46824, 45803, 44269, 42736, 41202, 
	39669, 38135, 36601, 35067, 33534, 32000, 30466, 28420, 
	26886, 25353, 23819, 22285, 21264, 19731, 18197, 16664, 
	15644, 14111, 13091, 11558, 10539, 9519, 9012, 7993, 
	7486, 6980, 6986, 6480, 6486, 7004, 7009, 7527, 
	8196, 8713, 9742, 10771, 11799, 12826, 14366, 15393, 
	16932, 18471, 19498, 21037, 22575, 24114, 25652, 27190, 
	28729, 30267, 31805, 33855, 35393, 36932, 38470, 40008, 
	41547, 43085, 44624, 46162, 47189, 48728, 50267, 51294, 
	52834, 53862, 54890, 55919, 56947, 57977, 58494, 59012, 
	59017, 59535, 59542, 59036, 59041, 58535, 57516, 57010, 
	55990, 54971, 53951, 52931, 51398, 50378, 48845, 47312, 
	46291, 44757, 43224, 41690, 40157, 38623, 37089, 35555, 
	34021, 32488, 30442, 28908, 27374, 25840, 24307, 22773, 
	21240, 20218, 18685, 17152, 15619, 14598, 13066, 12046, 
	11026, 10006, 8987, 8480, 7461, 6955, 6960, 6454, 
	6460, 6466, 6984, 7502, 8019, 9048, 9565, 10594, 
	11622, 12802, 13829, 14857, 16396, 17935, 19474, 20501, 
	22039, 23578, 25116, 26654, 28193, 29731, 31269, 33319, 
	34857, 36396, 37934, 39472, 41010, 42549, 44087, 45626, 
	47165, 48192, 49731, 51270, 52298, 53325, 54865, 55894, 
	56922, 57439, 57957, 58986, 58992, 59510, 59516, 59522, 
	59016, 58510, 58003, 56985, 56477, 55458, 54438, 52906, 
	51886, 50865, 49332, 47799, 46266, 45245, 43712, 42178, 
	40644, 39111, 37577, 36043, 34509, 32463, 30930, 29396, 
	27862, 26328, 24795, 23261, 21727, 20194, 19173, 17640, 
	16107, 15086, 13553, 12533, 11513, 10493, 9474, 8455, 
	7948, 7442, 6935, 6429, 6435, 6441, 6959, 7477, 
	7994, 8511, 9540, 10569, 11597, 12625, 13653, 15192,      // timeout
	16220, 17759, 19298, 20836, 21863, 23041, 24580, 26118, 
	27656, 29195, 31245, 32783, 34321, 35859, 37398, 38936, 
	40474, 42013, 43551, 45090, 46628, 48167, 49194, 50733, 
	51761, 53301, 54329, 55357, 56386, 57414, 57932, 58449, 
	58967, 59485, 59491, 59497, 58991, 58485, 57978, 57472, 
	56452, 55433, 54413, 53393, 52373, 50841, 49820, 48287, 
	46754, 45221, 44199, 42666, 41132, 39598, 38065, 36531, 
	34485, 32951, 31417, 29884, 28350, 26816, 25282, 23749, 
	22215, 20682, 19660, 18127, 16594, 15061, 14041, 13020, 
	11488, 10469, 9449, 8942, 7923, 7416, 6910, 6404, 
	6410, 6416, 6934, 6940, 7457, 8486, 9003, 10032, 
	11060, 12089, 13116, 14656, 15683, 17222, 18761, 20300, 
	21839, 22865, 24404, 25942, 27480, 29530, 31069, 32607, 
	34145, 35683, 37221, 38760, 39938, 41476, 43015, 44553, 
	46092, 47631, 48658, 50197, 51736, 52764, 53792, 54820, 
	55849, 56877, 57907, 58424, 58942, 58948, 59466, 59472, 
	58966, 58971, 58465, 57446, 56940, 55920, 54901, 53881, 
	52861, 51328, 50308, 48775, 47242, 45708, 44175, 42642, 
	41620, 40086, 38041, 36507, 34973, 33439, 31905, 30372, 
	28838, 27304, 25770, 24237, 22703, 21169, 19636, 18615, 
	17082, 15549, 14528, 12996, 11976, 10956, 9936, 8917, 
	8410, 7391, 6885, 6891, 6385, 6391, 6908, 6914, 
	7432, 7949, 8978, 9495, 10524, 11552, 13092, 14119, 
	15659, 16686, 18225, 19764, 21302, 22841, 24379, 25918, 
	27456, 28994, 30533, 32071, 33609, 35147, 36685, 38224, 
	39762, 41300, 42839, 44377, 45916, 47454, 48993, 50021, 
	51560, 52227, 53767, 54795, 55824, 56852, 57369, 58399, 
	58916, 58922, 59440, 59446, 59452, 58946, 58440, 57933, 
	56915, 56407, 55388, 54368, 52836, 51816, 50283, 49262, 
	47729, 46196, 44663, 43129, 41596, 40062, 38528, 36995, 
	35461, 33927, 32393, 30859, 29326, 27792, 26258, 24724, 
	23191, 21657, 20124, 18591, 17569, 16037, 14504, 13483, 
	12463, 10931, 9911, 9404, 8385, 7878, 7372, 6865, 
	6359, 6365, 6371, 6889, 7407, 7924, 8441, 9470, 
	10499, 11527, 12555, 13583, 15122, 16150, 17689, 19227, 
	20766, 22305, 23843, 25382, 26920, 28458, 29996, 31535, 
	33073, 34611, 36149, 37687, 39226, 40764, 42302, 43841, 
	45379, 46918, 48457, 49484, 51023, 52563, 53591, 54619, 
	55647, 56676, 57344, 57862, 58379, 58897, 59415, 59421, 
	59427, 58921, 58415, 57908, 57402, 56383, 55363, 54343, 
	53323, 52303, 50771, 49750, 48217, 46684, 45151, 43617, 
	42084, 40550, 39016, 37483, 35949, 34415, 32881, 31347, 
	29813, 28280, 26746, 25212, 23679, 22145, 20612, 19078, 
	18057, 16524, 14991, 13971, 12438, 11418, 10399, 9379, 
	8360, 7853, 7346, 6840, 6334, 6340, 6346, 6864, 
	6870, 7387, 8416, 8933, 9962, 10990, 12018, 13558, 
	14586, 16125, 17152, 18691, 20230, 21769, 23307, 24845,  //timeout
	26384, 27922, 29460, 30998, 32537, 34075, 35613, 37151, 
	38689, 40228, 41766, 43305, 44843, 46382, 47921, 49460, 
	50487, 52026, 53054, 54594, 55622, 56651, 57167, 58197, 
	58714, 59232, 59750, 59396, 59402, 58896, 58902, 58395, 
	57377, 56870, 55850, 54831, 53811, 52279, 51258, 49725, 
	48705, 47171, 45638, 44105, 42571, 41038, 39504, 37970, 
	36437, 34903, 33369, 31835, 30301, 28767, 27234, 25700, 
	24166, 22633, 21099, 19566, 18033, 17012, 15479, 13946, 
	12926, 11906, 10886, 9866, 8847, 7828, 7321, 6815, 
	6821, 6315, 6321, 6839, 6844, 7362, 7879, 8908, 
	9937, 10966, 11994, 13022, 14049, 15589, 17128, 18155, 
	19694, 21232, 22771, 24309, 25848, 27386, 28924, 30462, 
	32001, 33539, 35077, 36615, 38153, 39692, 41230, 42768, 
	44307, 45846, 47384, 48923, 49950, 51490, 53029, 54057, 
	55085, 56114, 57142, 57660, 58689, 59207, 59212, 59730, 
	59736, 59230, 59236, 58370, 57863, 56845, 55825, 55318, 
	53786, 52766, 51746, 50213, 48680, 47659, 46126, 44593, 
	43059, 41526, 39992, 38458, 36924, 35391, 33857, 32323, 
	30789, 29255, 27722, 26188, 24654, 23121, 21587, 20054, 
	18520, 16987, 15966, 14434, 13413, 11881, 10861, 9841, 
	8822, 8315, 7808, 7302, 6795, 6289, 6295, 6301, 
	6819, 7337, 7854, 8371, 9400, 10429, 11457, 12485, 
	14025, 15052, 16591, 17618, 19157, 20696, 22235, 23773, 
	25311, 26850, 28388, 29926, 31464, 33003, 34541, 36079, 
	37617, 39155, 40694, 42232, 43771, 45309, 46848, 48387, 
	49926, 50953, 52493, 53521, 54549, 55577, 56606, 57634, 
	58152, 58669, 59187, 59705, 59711, 59717, 59211, 58705, 
	58198, 57692, 56673, 55653, 54273, 53253, 51721, 50701, 
	49168, 48147, 46614, 45080, 43547, 42013, 40480, 38946, 
	37412, 35879, 34345, 32811, 31277, 29743, 28209, 26676, 
	25142, 23608, 22075, 20541, 19008, 17475, 16454, 14921, 
	13901, 12368, 11348, 10328, 9309, 8290, 7783, 7276, 
	6770, 6264, 6270, 6276, 6794, 7312, 7829, 8346, 
	9375, 9892, 10920, 12460, 13488, 14516, 16055, 17594, 
	18621, 20160, 21698, 23237, 24775, 26314, 27852, 29390, 
	30928, 32466, 34005, 35543, 37081, 38619, 40670, 42208, 
	43234, 44773, 46312, 47851, 49390, 50417, 51956, 52984, 
	54524, 55552, 56581, 57097, 58127, 58644, 59162, 59680, 
	59686, 59692, 59186, 59192, 58173, 57667, 57160, 56140, 
	55121, 54101, 52568, 51548, 50015, 48482, 47461, 45568, 
	44035, 42501, 40968, 39434, 37900, 36366, 34833, 33299, 
	31765, 30231, 28697, 27164, 25630, 24096, 22563, 21029, 
	19496, 17963, 16430, 15409, 13876, 12856, 11836, 10304, 
	9796, 8777, 7758, 7251, 6745, 6751, 6245, 6251, 
	6769, 6774, 7292, 7809, 8838, 9867, 10896, 11924, 
	12952, 14491, 15519, 17058, 18085, 19623, 21162, 22701, 
	24239, 25777, 27316, 28854, 30392, 31930, 33469, 35007, 
	36545, 38595, 40133, 41672, 43210, 44749, 45775, 47314, 
	48853, 50392, 51420, 52959, 53987, 55015, 56044, 57072, 
	57590, 58619, 59137, 59142, 59660, 59667, 59161, 59166, 
	58660, 58154, 57135, 56115, 55096, 54076, 53056, 51523, 
	50503, 48970, 47949, 46416, 44882, 43349, 41815, 40282, 
	38748, 37214, 35680, 34147, 32613, 31079, 29185, 27651, 
	26118, 24584, 23050, 21517, 19983, 18450, 16917, 15896, 
	14364, 13343, 11811, 10791, 9771, 8752, 8245, 7226, 
	6720, 6726, 6219, 6225, 6231, 6749, 7267, 7784, 
	8813, 9330, 10359, 11387, 12415, 13955, 14982, 16521, 
	18060, 19087, 20626, 22164, 23703, 25241, 26780, 28318, 
	29856, 31394, 32932, 34471, 36521, 38059, 39597, 41136, 
	42674, 44212, 45751, 46778, 48317, 49856, 50883, 52423, 
	53450, 54990, 56019, 56536, 57565, 58082, 58599, 59117, 
	59635, 59641, 59647, 59141, 58635, 58128, 57622, 56603, 
	55583, 54563, 53543, 52011, 50990, 49458, 47925, 46903, 
	45370, 43837, 42303, 40770, 39236, 37702, 36168, 34635, 
	33101, 31567, 30033, 27987, 26453, 24920, 23386, 22365, 
	20831, 19298, 17765, 16232, 14851, 13319, 12298, 11278, 
	10258, 9239, 8220, 7713, 7207, 6700, 6194, 6200, 
	6206, 6724, 7242, 7759, 8276, 9305, 9822, 11362, 
	12390, 13418, 14958, 15985, 17524, 19063, 20090, 21628, 
	23167, 24705, 26243, 27782, 29320, 30858, 32396, 34446, 
	35985, 37523, 39061, 40599, 42138, 43676, 45215, 46754, 
	47780, 49319, 50859, 51886, 53426, 54454, 55482, 56511, 
	57539, 58057, 58574, 59092, 59610, 59616, 59622, 59116, 
	58610, 58103, 57597, 56578, 56070, 55051, 53519, 52498, 
	50966, 49945, 48412, 46879, 45858, 44325, 42791, 41257, 
	39724, 38190, 36656, 35122, 33589, 31543, 30009, 28475, 
	26941, 25408, 23874, 22340, 21319, 19786, 18252, 16719, 
	15699, 14166, 13146, 11613, 10594, 9574, 8707, 7688, 
	7181, 6675, 6681, 6175, 6181, 6699, 6705, 7222, 
	8251, 8768, 9797, 10826, 11854, 12882, 14421, 15448, 
	16988, 18526, 19553, 21092, 22630, 24169, 25707, 27246, 
	28784, 30322, 32372, 33910, 35448, 36987, 38525, 40063, 
	41602, 43140, 44679, 46217, 47244, 48783, 50322, 51350, 
	52889, 53917, 54945, 55974, 57003, 58032, 58549, 59067, 
	59073, 59591, 59597, 59091, 59097, 58590, 57572, 57065, 
	56045, 55026, 54006, 52986, 51453, 50433, 48900, 47367, 
	45834, 44812, 43279, 41745, 40212, 38678, 37144, 35610, // here is the theoretical limit
	34076, 32031, 30497, 28963, 27429, 25895, 24362, 22828, 
	21295, 20273, 18740, 17207, 15674, 14653, 13121, 12101, 
	11081, 10061, 9042, 8535, 7516, 7010, 7016, 6150, 
	6156, 6162, 6679, 7197, 7714, 8744, 9260, 10289, 
	11317, 12857, 13885, 15424, 16451, 17990, 19529, 20556, 
	22094, 23633, 25171, 26709, 28248, 29786, 31836, 33374, 
	34912, 36451, 37989, 39527, 41065, 42604, 44142, 45681, 
	47220, 48247, 49786, 51325, 52353, 53892, 54920, 55949, 
	56978, 57495, 58012, 59041, 59047, 59565, 59571, 59577, 
	59071, 58565, 58058, 57040, 56533, 55513, 54493, 52961, 
	51941, 50408, 49387, 47854, 46321, 44788, 43767, 42233 */
};

#define ISSData_Length 6632
#endif

#ifdef TESTISS  // The testing dataset (starting at Feb. 9, 21:00:00 UTC)
PROGMEM const prog_uint16_t ISSData[] = { 	
	12641, 11621, 10241, 9221, 8202, 7695, 7189, 6683, 
	6176, 6182, 6188, 6706, 7224, 7742, 8259, 9288, 
	9804, 10833, 12373, 13401, 14428, 15967, 17506, 19045, 
	20072, 21611, 23149, 24688, 26226, 27764, 29302, 30841, 
	32379, 34429, 35967, 37505, 39044, 40582, 42120, 43659, 
	45197, 46736, 47763, 49302, 50841, 51869, 53408, 54436, 
	55465, 56493, 57522, 58039, 58557, 59074, 59592, 59598, 
	59604, 59098, 58592, 58086, 57579, 56560, 56053, 55033, 
	53501, 52481, 51460, 49928, 48395, 47374, 45840, 44307, 
	42773, 41240, 39706, 38172, 36639, 35105, 33571, 32037, 
	30503, 28969, 26924, 25390, 24368, 22835, 21301, 19768, 
	18235, 16702, 15681, 14148, 13128, 12108, 10576, 9556, 
	9049, 8030, 7524, 6657, 6663, 6157, 6163, 6681, 
	6687, 7204, 8234, 8751, 9780, 10808, 11836, 12864, 
	14403, 15431, 16970, 18509, 19536, 21074, 22613, 24151, 
	25690, 27228, 28766, 30304, 31843, 33893, 35431, 36969, 
	38507, 40046, 41584, 43123, 44661, 46200, 47227, 48766, 
	50305, 51332, 52872, 53900, 54928, 55956, 56985, 58014, 
	58531, 59049, 59055, 59573, 59579, 59073, 59079, 58573, 
	57554, 57047, 56028, 55008, 53988, 52968, 51436, 50415, 
	48882, 47349, 46328, 44795, 43261, 41728, 40194, 38660, 
	37126, 35593, 34059, 32525, 30991, 28945, 27412, 25878, 
	24344, 22811, 21789, 20256, 18722, 17189, 16168, 14636, 
	13615, 12083, 11063, 10043, 9024, 8517, 7498, 6992, 
	6998, 6492, 6498, 6504, 6662, 7179, 7697, 8726, 
	9243, 10271, 11299, 12327, 13867, 14894, 16434, 17973, 
	19511, 20538, 22077, 23615, 25153, 26692, 28230, 29768, 
	31818, 33357, 34895, 36433, 37971, 39509, 41048, 42586, 
	44125, 45663, 47202, 48229, 49768, 51307, 52335, 53363, 
	54903, 55931, 56960, 57477, 57994, 59024, 59030, 59548, 
	59554, 59560, 59054, 58547, 58041, 57022, 56515, 55495, 
	54476, 53456, 51923, 50903, 49370, 47837, 46304, 45282, 
	43749, 42215, 40682, 39148, 37614, 36080, 34547, 33013, 
	31479, 29433, 27899, 26366, 24832, 23298, 22277, 20743, 
	19210, 17677, 16144, 15123, 13591, 12570, 11550, 10531, 
	9511, 8492, 7985, 7479, 6972, 6466, 6472, 6478, 
	6996, 7514, 8031, 8549, 9218, 10246, 11275, 12303, 
	13330, 14870, 15897, 17436, 18975, 20002, 21540, 23079, 
	24617, 26156, 27694, 29232, 31282, 32820, 34359, 35897, 
	37435, 38973, 40512, 42050, 43588, 45127, 46666, 47693, 
	49232, 50771, 51798, 53338, 54366, 55394, 56423, 57452, 
	57969, 58487, 59004, 59522, 59528, 59534, 59028, 58522, 
	58016, 57509, 56490, 55982, 54451, 53431, 52411, 50878, 
	49857, 48324, 46791, 45770, 44237, 42703, 41170, 39636, 
	38102, 36568, 35034, 33501, 31455, 29921, 28387, 26853, 
	25320, 23786, 22252, 21231, 19698, 18164, 16631, 15611, 
	14078, 13058, 11526, 10506, 9486, 8979, 7960, 7453, 
	6947, 6953, 6447, 6453, 6971, 6977, 7494, 8524, 
	9041, 10069, 11098, 12126, 13154, 14693, 15361, 16900, 
	18439, 19977, 21004, 22543, 24081, 25619, 27158, 28696, 
	30746, 32284, 33822, 35361, 36899, 38437, 39975, 41514, 
	43052, 44591, 46129, 47668, 48695, 50234, 51774, 52801, 
	53829, 54857, 55886, 56915, 57944, 58461, 58979, 58985, 
	59503, 59509, 59003, 59009, 58502, 57484, 56977, 55958, 
	54938, 53918, 52898, 51366, 50345, 48812, 47279, 45746, 
	44724, 43191, 41657, 40124, 38590, 37056, 35522, 33988, 
	31943, 30409, 28875, 27341, 25807, 24274, 22740, 21207, 
	20185, 18652, 17119, 15586, 14565, 13033, 12013, 10993, 
	9973, 8954, 8447, 7428, 6922, 6928, 6422, 6428, 
	6434, 6951, 7469, 7986, 9016, 9532, 10561, 11589, 
	13129, 14157, 15696, 16723, 18262, 19801, 21340, 22366, 
	23905, 25443, 26981, 28520, 30210, 31748, 33286, 34824, 
	36363, 37901, 39439, 40978, 42516, 44054, 45593, 47132, 
	48159, 49698, 51237, 52265, 53805, 54833, 55861, 56890, 
	57407, 58436, 58954, 58960, 59478, 59484, 59490, 58983, 
	58477, 57971, 56952, 56445, 55425, 54405, 52873, 51853, 
	50320, 49300, 47767, 46233, 45212, 43679, 42145, 40611, 
	39078, 37544, 36010, 34476, 32430, 30897, 29363, 27829, 
	26295, 24762, 23228, 21694, 20161, 19140, 17607, 16074, 
	15053, 13520, 12500, 11480, 10460, 9441, 8422, 7915, 
	7409, 6902, 6396, 6402, 6408, 6926, 7444, 7961, 
	8479, 9507, 10536, 11564, 12592, 13620, 15160, 16187, 
	17726, 19265, 20803, 22342, 23369, 24907, 26445, 28496, 
	30034, 31572, 33110, 34648, 36187, 37725, 39263, 40801, 
	42340, 43878, 45057, 46596, 48134, 49161, 50701, 51728, 
	53268, 54296, 55324, 56353, 57382, 57899, 58416, 58934, 
	59452, 59458, 59464, 58958, 58452, 57945, 57439, 56420, 
	55400, 54381, 53361, 52340, 50808, 49787, 48254, 46721, 
	45188, 44166, 42633, 41099, 39566, 38032, 36498, 34452, 
	32918, 31384, 29851, 28317, 26783, 25249, 23716, 22182, 
	20649, 19627, 18094, 16561, 15028, 14008, 12987, 11455, 
	10436, 9416, 8909, 7890, 7383, 6877, 6371, 6377, 
	6383, 6901, 6907, 7424, 8453, 8970, 9999, 11028, 
	12056, 13083, 14623, 15650, 17189, 18728, 20267, 21806, 
	23344, 24371, 25909, 27959, 29498, 31036, 32574, 34112, 
	35650, 37189, 38727, 40265, 41803, 43342, 44880, 46419, 
	47958, 48985, 50524, 52064, 53091, 54119, 55299, 55816, 
	56845, 57874, 58391, 58909, 58915, 59433, 59439, 58933, 
	58939, 58432, 57414, 56907, 55887, 54868, 53848, 52828, 
	51295, 50275, 48742, 47209, 45675, 44142, 43121, 41587, 
	40053, 38520, 36986, 34940, 33406, 31872, 30339, 28805, 
	27271, 25737, 24204, 22670, 21136, 19603, 18582, 17049, 
	15516, 14495, 12963, 11943, 10923, 9903, 8884, 8377, 
	7358, 6852, 6857, 6351, 6357, 6875, 6881, 7399, 
	7916, 8945, 9462, 10491, 11519, 13059, 14086, 15626, 
	16653, 18192, 19731, 21270, 22808, 24347, 25885, 27423, 
	28961, 30500, 32038, 33576, 35114, 36652, 38191, 39729, 
	41267, 42806, 44344, 45883, 47422, 48961, 49988, 51527, 
	52555, 54094, 55122, 56151, 57180, 57697, 58726, 58884, 
	58889, 59407, 59413, 59419, 58913, 58407, 57900, 56882, 
	56374, 55355, 54335, 52803, 51783, 50250, 49229, 47696, 
	46163, 44630, 43096, 42075, 40541, 39007, 36962, 35428, 
	33894, 32360, 30826, 29293, 27759, 26225, 24691, 23158, 
	21624, 20091, 19069, 17536, 16003, 14983, 13450, 12430, 
	11410, 10390, 9371, 8352, 7845, 7338, 6832, 6326, 
	6332, 6338, 6856, 7374, 7891, 8408, 9437, 10466, 
	11494, 12522, 13550, 15089, 16117, 17656, 19194, 20733, 
	22272, 23810, 25349, 26887, 28425, 29963, 31502, 33040, 
	34578, 36116, 37654, 39193, 40731, 42269, 43808, 45347, 
	46885, 48424, 49451, 50990, 52530, 53558, 54586, 55614, 
	56643, 57672, 58189, 58706, 59224, 59742, 59748, 59394, 
	58888, 58382, 57875, 57369, 56349, 55330, 54310, 53290, 
	52270, 50738, 49717, 48184, 46651, 45117, 43584, 42051, 
	40517, 38983, 37449, 35916, 34382, 32848, 31314, 29780, 
	28247, 26713, 25179, 23645, 22112, 20578, 19045, 18024, 
	16491, 14958, 13938, 12405, 11385, 10365, 9346, 8839, 
	7820, 7313, 6807, 6301, 6307, 6313, 6831, 6836, 
	7354, 8383, 8900, 9929, 10957, 11985, 13525, 14553, 
	16092, 17119, 18658, 20197, 21736, 23274, 24812, 26351, 
	27889, 29427, 30966, 32504, 34042, 35580, 37118, 38657, 
	40195, 41733, 43272, 44810, 46349, 47888, 49427, 50454, 
	51993, 53021, 54561, 55589, 56618, 57135, 58164, 58681, 
	59199, 59717, 59723, 59729, 59223, 59229, 58722, 57704, 
	56837, 55817, 54798, 53778, 52246, 51225, 49692, 48672, 
	47138, 45605, 44072, 42538, 41005, 39471, 37937, 36404, 
	34870, 33336, 31802, 30268, 28734, 27201, 25667, 24133, 
	22600, 21066, 19533, 18000, 16979, 15446, 14425, 12893, 
	11873, 10853, 9833, 8814, 8307, 7288, 6782, 6788, 
	6281, 6287, 6805, 6811, 7329, 7846, 8875, 9904, 
	10421, 11961, 12989, 14016, 15556, 16583, 18122, 19661, 
	21199, 22738, 24276, 25815, 27353, 28891, 30429, 31968, 
	33506, 35044, 36582, 38120, 39659, 41197, 42735, 44274, 
	45813, 47351, 48890, 49918, 51457, 52996, 54024, 55052, 
	56081, 57110, 57627, 58656, 59174, 59179, 59697, 59704, 
	59198, 59203, 58697, 58190, 57172, 56152, 55645, 54113, 
	53093, 51713, 50180, 49159, 47626, 46093, 44560, 43026, 
	41493, 39959, 38425, 36891, 35358, 33824, 32290, 30756, 
	29222, 27689, 26155, 24621, 23088, 21554, 20021, 18487, 
	17466, 15933, 14401, 13380, 12360, 10828, 9808, 9301, 
	8282, 7775, 7268, 6762, 6256, 6262, 6268, 6786, 
	7304, 7821, 8338, 9367, 10396, 11424, 12452, 13992, 
	15019, 16558, 17585, 19124, 20663, 22202, 23740, 25278, 
	26817, 28355, 29893, 31431, 32970, 34508, 36046, 37584, 
	39123, 40661, 42199, 43738, 45276, 46815, 48354, 49893, 
	50920, 52460, 53488, 54516, 55544, 56573, 57602, 58119, 
	58636, 59154, 59672, 59678, 59684, 59178, 58672, 58165, 
	57659, 56639, 55620, 54600, 53580, 52048, 51027, 49495, 
	48474, 46941, 45407, 43874, 42340, 40807, 38913, 37379, 
	35845, 34312, 32778, 31244, 29710, 28176, 26643, 25109, 
	23575, 22042, 20508, 18975, 17442, 16421, 14888, 13867, 
	12335, 11315, 10295, 9276, 8257, 7750, 7243, 6737, 
	6231, 6237, 6243, 6761, 6766, 7796, 8313, 8830, 
	9859, 10887, 11915, 13455, 14483, 16022, 17049, 18588, 
	20127, 21665, 23204, 24742, 26281, 27819, 29357, 30895, 
	32433, 33972, 35510, 37048, 38586, 40125, 42175, 43201, 
	44740, 46279, 47818, 49357, 50384, 51923, 52951, 54491, 
	55519, 56548, 57064, 58094, 58611, 59129, 59647, 59653, 
	59659, 59153, 59159, 58140, 57633, 57127, 56107, 55088, 
	54068, 52535, 51515, 49982, 48961, 47428, 45895, 44362, 
	42828, 41295, 39761, 38227, 36693, 35160, 33626, 32092, 
	30558, 29024, 27490, 25957, 24423, 22529, 20996, 19463, 
	17929, 16908, 15376, 13843, 12822, 11802, 10782, 9763, 
	8744, 7725, 7218, 6712, 6717, 6211, 6217, 6735, 
	6741, 7259, 7776, 8805, 9834, 10862, 11891, 12919, 
	13946, 15485, 17025, 18052, 19590, 21129, 22668, 24206, 
	25744, 27283, 28821, 30359, 31897, 33436, 34974, 36512, 
	38050, 40100, 41639, 43177, 44204, 45742, 47281, 48820, 
	50359, 51387, 52926, 53954, 54982, 56011, 57039, 57557, 
	58586, 59104, 59109, 59627, 59633, 59127, 59133, 58627, 
	58120, 57101, 56082, 55063, 54043, 53023, 52002, 50470, 
	48937, 47916, 46383, 44849, 43316, 41782, 40249, 38715, 
	37181, 35647, 34114, 32580, 31046, 29512, 27978, 26445, 
	24911, 23377, 21844, 20310, 18777, 17244, 16223, 14690, 
	13670, 11778, 10758, 9738, 8719, 8212, 7705, 7198, 
	6692, 6186, 6192, 6198, 6716, 7234, 7751, 8268, 
	9297, 10326, 11354, 12382, 13922, 14949, 16488, 17515, 
	19054, 20593, 22131, 23670, 25208, 26747, 28285, 29823, 
	31361, 32899, 34438, 35976, 38026, 39564, 41103, 42641, 
	44179, 45206, 46745, 48284, 49823, 50850, 52390, 53417, 
	54445, 55986, 56502, 57531, 58049, 58566, 59084, 59602, 
	59608, 59614, 59108, 58602, 58095, 57588, 56569, 55550, 
	54530, 53510, 51978, 50957, 49424, 48404, 46870, 45337, 
	43804, 42270, 40736, 39203, 37669, 36135, 34601, 33068, 
	31534, 30000, 28466, 26932, 25399, 23865, 22331, 20798, 
	19265, 17732, 16711, 15178, 14157, 12625, 11605, 10585, 
	9566, 8547, 8040, 7173, 6667, 6161, 6167, 6173, 
	6691, 7208, 7726, 8243, 9272, 9789, 10817, 12357, 
	13385, 14412, 15952, 17491, 18518, 20056, 21595, 23134, 
	24672, 26210, 27749, 29287, 30825, 32363, 33901, 35440, 
	37490, 39028, 40566, 42105, 43643, 45182, 46209, 47747, 
	49286, 50826, 51853, 53393, 54421, 55449, 56477, 56994, 
	58024, 58541, 59059, 59577, 59583, 59589, 59083, 58577, 
	58070, 57563, 56544, 56037, 55017, 53485, 52465, 51445, 
	49912, 48379, 47358, 45825, 44291, 42758, 41224, 39691, 
	38157, 36623, 35089, 33555, 32022, 30488, 28954, 27420, 
	25886, 24353, 22819, 21286, 19752, 18219, 16686, 15665, 
	14133, 13112, 12092, 11072, 10053, 9034, 8015, 7508, 
	7002, 7007, 6501, 6147, 6665, 6671, 7189, 7706, 
	8735, 9764, 10792, 11820, 12848, 14388, 15415, 16954, 
	18493, 19520, 21059, 22597, 24136, 25674, 27212, 28751, 
	30289, 31827, 33365, 35415, 36954, 38492, 40030, 41569, 
	43107, 44646, 46184, 47211, 48750, 50289, 51316, 52856, 
	53884, 54912, 55941, 56969, 57998, 58516, 59033, 59039, 
	59557, 59563, 59057, 59063, 58557, 58050, 57031, 56012, 
	54993, 53973, 52953, 51420, 50400, 48867, 47846, 46312, 
	44779, 43246, 41712, 40178, 38645, 37111, 35577, 34043, 
	32509, 30976, 29442, 27908, 26374, 24841, 23307, 21774, 
	20240, 18707, 17174, 16153, 14620, 13600, 12067, 11048, 
	10028, 9009, 8502, 7483, 6976, 6982, 6476, 6482, 
	6488, 7006, 7524, 7681, 8710, 9227, 10256, 11284, 
	12312, 13851, 14879, 16418, 17957, 18984, 20523, 22061, 
	23600, 25138, 26676, 28215, 29753, 31291, 32829, 34879, 
	36417, 37956, 39494, 41032, 42571, 44109, 45648, 46675, 
	48214, 49753, 51292, 52319, 53347, 54887, 55916, 56432, 
	57461, 57979, 58496, 59014, 59532, 59538, 59544, 59038, 
	58532, 58025, 57518, 56499, 55480, 54460, 53440, 51908, 
	50887, 49354, 47821, 46800, 45267, 43733, 42200, 40666, 
	39133, 37599, 36065, 34531, 32997, 31463, 29930, 28396, 
	26350, 24816, 23795, 22261, 20728, 19195, 17661, 16128, 
	15108, 13575, 12555, 11535, 10515, 9496, 8476, 7970, 
	7463, 6957, 6451, 6457, 6463, 6981, 7498, 8016, 
	8533, 9562, 10079, 11107, 12647, 13315, 14854, 15882, 
	17421, 18960, 19986, 21525, 23063, 24602, 26140, 27678, 
	29217, 30755, 32293, 34343, 35881, 37420, 38958, 40496, 
	42034, 43573, 45112, 46650, 47677, 49216, 50755, 51783, 
	53323, 54351, 55379, 56407, 57436, 57953, 58471, 58989, 
	59507, 59513, 59519, 59013, 58506, 58000, 57493, 56474, 
	55967, 54947, 53415, 52395, 51375, 49842, 48309, 46776, 
	45755, 44221, 42688, 41154, 39620, 38087, 36553, 35019, 
	33485, 31951, 30417, 28372, 26838, 25304, 23771, 22749, 
	21216, 19682, 18149, 16616, 15595, 14063, 13042, 11510, 
	10490, 9471, 8963, 7945, 7438, 6932, 6937, 6431, 
	6437, 6955, 6961, 7479, 8508, 9025, 10054, 11082, 
	12110, 13138, 14678, 15705, 17244, 18783, 19810, 21349, 
	22887, 24066, 25604, 27142, 28680, 30219, 32269, 33807, 
	35345, 36883, 38422, 39960, 41498, 43037, 44575, 46114, 
	47653, 48680, 50219, 51246, 52786, 53814, 54842, 55870, 
	56899, 57928, 58446, 58963, 58969, 59487, 59493, 58987, 
	58993, 58487, 57468, 56961, 55942, 54922, 53903, 52882, 
	51350, 50329, 48796, 47263, 46242, 44709, 43175, 41642, 
	40108, 38574, 37041, 35507, 33973, 32439, 30393, 28860, 
	27326, 25792, 24258, 22725, 21703, 20170, 18637, 17104, 
	15571, 14550, 13018, 11997, 10977, 9958, 8938, 8431, 
	7413, 6906, 6912, 6406, 6412, 6418, 6936, 7453, 
	7971, 9000, 9517, 10545, 11574, 13114, 14141, 15169, 
	16708, 18247, 19786, 20812, 22351, 23889, 25428, 26966, 
	28504, 30042, 32093, 33631, 35169, 36707, 38245, 39784, 
	40962, 42500, 44039, 45578, 47116, 48143, 49682, 51222, 
	52249, 53789, 54817, 55846, 56874, 57391, 57909, 58938, 
	58944, 59462, 59468, 59474, 58968, 58462, 57955, 56936, 
	56429, 55410, 54390, 52858, 51837, 50817, 49284, 47751, 
	46218, 45197, 43663, 42130, 40596, 39062, 37528, 35995, 
	34461, 32927, 30881, 29347, 27814, 26280, 24746, 23213, 
	21679, 20658, 19124, 17591, 16058, 15037, 13505, 12485, 
	11465, 10445, 9425, 8406, 7900, 7393, 6887, 6381, 
	6387, 6393, 6911, 7428, 7946, 8463, 9492, 10521, 
	11549, 12577, 13605, 15144, 16171, 17710, 19249, 20788, 
	21815, 23353, 24892, 26430, 27968, 30018, 31557, 33095, 
	34633, 36171, 37709, 39248, 40786, 42324, 43863, 45401, 
	46940, 48479, 49506, 51045, 51713, 53252, 54280, 55309, 
	56337, 57366, 57883, 58401, 58919, 59437, 59443, 59449, 
	58943, 58436, 57930, 57423, 56404, 55385, 54365, 53345, 
	52325, 50792, 49772, 48239, 46706, 45172, 44151, 42617, 
	41084, 39550, 38016, 36483, 34949, 32903, 31369, 29835, 
	28301, 26768, 25234, 23700, 22167, 20633, 19612, 18079, 
	16546, 15525, 13992, 12972, 11440, 10420, 9401, 8893, 
	7874, 7368, 6861, 6867, 6361, 6367, 6885, 6891, 
	7409, 8438, 8955, 9984, 11012, 12040, 13068, 14608, 
	15635, 17174, 18713, 20252, 21790, 22817, 24355, 25894, 
	27432, 29482, 31020, 32559, 34097, 35635, 37173, 38711, 
	40250, 41788, 43326, 44865, 46404, 47943, 48970, 50509, 
	52048, 53076, 54104, 55132, 56160, 57189, 57858, 58376, 
	58893, 58899, 59417, 59423, 58917, 58923, 58417, 57398, 
	56891, 55872, 54852, 53832, 52812, 51280, 50259, 48726, 
	47193, 45660, 44127, 43105, 41572, 40038, 38504, 36970, 
	34925, 33391, 31857, 30323, 28789, 27255, 25722, 24188, 
	22655, 21121, 19588, 18566, 17033, 15500, 14480, 12947, 
	11927, 10907, 9888, 8868, 8361, 7343, 6836, 6842, 
	6336, 6342, 6860, 6866, 7383, 7901, 8930, 9447, 
	10475, 11503, 13043, 14071, 15610, 16638, 18177, 19715, 
	21254, 22793, 23819, 25357, 27408, 28946, 30484, 32022, 
	33561, 35099, 36637, 38175, 39713, 41252, 42790, 44329, 
	45867, 47406, 48945, 49972, 51512, 52539, 54079, 55107, 
	56135, 57164, 57681, 58710, 59228, 59234, 59752, 59398, 
	59404, 58898, 58392, 57885, 56866, 56359, 55340, 54320, 
	52788, 51767, 50235, 49214, 47681, 46148, 44614, 43081, 
	42059, 40526, 38992, 37458, 35412, 33879, 32345, 30811, 
	29277, 27743, 26210, 24676, 23142, 21609, 20075, 19054, 
	17521, 15988, 14967, 13435, 12414, 11394, 10375, 9355, 
	8336, 7829, 7323, 6817, 6311, 6317, 6323, 6840, 
	7358, 7876, 8393, 9422, 10450, 11479, 12507, 13534, 
	15074, 16101, 17640, 19179, 20718, 22256, 23795, 25333, 
	26872, 28410, 29948, 31486, 33024, 34563, 36101, 37639, 
	39177, 40716, 42254, 43792, 45331, 46870, 48409, 49436, 
	50975, 52002, 53542, 54570, 55598, 56627, 57656, 58173, 
	58691, 59208, 59726, 59732, 59738, 59232, 58726, 57860, 
	57353, 56334, 55315, 54295, 53275, 52255, 50722, 49701, 
	48168, 46635, 45102, 43569, 42547, 41013, 39480, 37946, 
	35900, 34366, 32833, 31299, 29765, 28231, 26697, 25164, 
	23630, 22096, 20563, 19030, 18009, 16475, 14943, 13922, 
	12902, 11370, 10350, 9330, 8823, 7804, 7298, 6791, 
	6285, 6291, 6297, 6815, 6821, 7338, 8368, 8885, 
	9913, 10942, 11970, 13510, 14537, 16077, 17104, 18643, 
	20181, 21720, 23259, 24797, 26335, 27874, 29412, 30950, 
	32488, 34026, 35565, 37103, 38641, 40179, 41718, 43256, 
	44795, 46333, 47872, 49411, 50438, 51978, 53005, 54033, 
	55574, 56602, 57119, 58148, 58665, 59183, 59189, 59707, 
	59713, 59207, 59213, 58707, 57688, 57181, 56162, 55142, 
	53762, 52742, 51210, 49677, 48656, 47123, 45590, 44056, 
	42523, 40989, 39456, 37922, 36388, 34854, 33320, 31787, 
	30253, 28719, 27185, 25651, 24118, 22584, 21051, 19517, 
	18496, 16963, 15430, 14410, 12877, 11857, 10837, 9817, 
	8798, 8291, 7272, 6766, 6772, 6266, 6272, 6790, 
	6796, 7313, 7831, 8860, 9377, 10405, 11945, 12973, 
	14001, 15540, 16567, 18106, 19645, 21184, 22722, 24261, 
	25799, 27337, 28876, 30414, 31952, 33490, 35028, 36567, 
	38105, 39643, 41182, 42720, 44258, 45797, 47336, 48875, 
	49902, 51441, 52469, 54009, 55037, 56065, 57094, 57611, 
	58640, 59158, 59164, 59682, 59688, 59182, 59188, 58681, 
	58175, 57156, 56649, 55629, 54609, 53077, 52057, 50524, 
	49504, 47971, 46437, 44544, 43011, 41477, 39943, 38410, 
	36876, 35342, 33808, 32274, 30741, 29207, 27673, 26139, 
	24606, 23072, 21538, 20005, 18472, 17451, 15918, 14385, 
	13364, 12344, 10812, 9793, 9285, 8266, 7759, 7253, 
	6747, 6240, 6246, 6252, 6770, 7288, 7806, 8323, 
	9352, 10380, 11408, 12436, 13464, 15004, 16543, 17570, 
	19109, 20647, 22186, 23725, 25263, 26801, 28340, 29878, 
	31416, 32954, 34492, 36030, 37569, 39107, 40645, 42184, 
	43722, 45261, 46800, 48338, 49877, 50905, 52444, 53472, 
	54500, 55528, 56557, 57586, 58103, 58621, 59138, 59656, 
	59662, 59668, 59162, 58656, 58150, 57643, 56624, 55604, 
	54585, 53565, 52544, 51012, 49479, 48458, 46925, 45392, 
	43858, 42325, 40791, 39258, 37724, 36190, 34656, 33122, 
	31588, 30055, 28161, 26627, 25093, 23560, 22026, 20493, 
	18959, 17938, 16405, 14872, 13852, 12320, 11299, 10280, 
	9260, 8753, 7734, 7228, 6721, 6215, 6221, 6227, 
	6745, 6751, 7268, 8298, 8815, 9843, 10872, 11900, 
	13440, 14467, 16006, 17034, 18572, 20111, 21650, 23188, 
	24727, 26265, 27803, 29342, 30880, 32418, 33956, 35494, 
	37033, 38571, 40109, 41647, 43186, 44725, 46263, 47802, 
	49341, 50368, 51908, 52935, 54475, 55503, 56532, 57049, 
	58078, 58595, 59113, 59631, 59637, 59643, 59137, 59143, 
	58637, 57618, 57111, 56092, 55072, 54052, 52520, 51499, 
	49967, 48946, 47413, 45879, 44346, 42813, 41279, 39745, 
	38212, 36678, 35144, 33610, 32076, 30543, 29009, 27475, 
	25941, 24408, 22874, 21341, 19807, 18274, 17253, 15360, 
	14339, 12807, 11787, 10767, 9747, 8728, 7709, 7202, 
	6696, 6702, 6196, 6202, 6720, 6726, 7243, 7761, 
	8790, 9818, 10847, 11875, 12903, 13931, 15470, 17009, 
	18036, 19575, 21114, 22652, 24191, 25729, 27267, 28805, 
	30344, 31882, 33420, 34958, 36496, 38035, 39573, 41111, 
	42650, 44188, 45727, 47266, 48805, 50344, 51371, 52911, 
	53939, 54967, 55995, 57024, 57541, 58570, 59088, 59094, 
	59612, 59618, 59112, 59118, 58611, 58105, 57086, 56067, 
	55559, 54027, 53007, 51987, 50454, 48921, 47900, 46367, 
	44834, 43300, 41767, 40233, 38699, 37166, 35632, 34098, 
	32564, 31030, 29497, 27963, 26429, 24895, 23362, 21828, 
	20295, 18762, 17740, 16208, 14675, 13654, 12634, 11102, 
	10082, 9575, 8196, 7689, 7183, 6677, 6170, 6176, 
	6182, 6700, 7218, 7735, 8253, 9282, 10310, 11338, 
	12366, 13906, 14933, 16473, 17500, 19039, 20577, 22116, 
	23654, 25193, 26731, 28269, 29807, 31346, 32884, 34422, 
	35960, 37498, 39037, 40575, 42113, 43652, 45191, 46729, 
	48268, 49807, 50835, 52374, 53402, 54430, 55458, 56487, 
	57516, 58033, 58551, 59068, 59586, 59592, 59598, 59092, 
	58586, 58080, 57573, 56554, 55534, 54515, 53495, 51962, 
	50942, 49409, 48388, 46855, 45322, 43788, 42255, 40721, 
	39187, 37654, 36120, 34586, 33052, 31518, 29984, 28451, 
	26917, 25383, 23850, 22316, 20783, 19249, 17716, 16695, 
	15162, 14142, 12609, 11589, 10570, 9550, 8531, 8024, 
	7518, 7011, 6145, 6151, 6157, 6675, 7193, 7710, 
	8228, 8745, 9773, 10802, 11830, 13369, 14397, 15936, 
	17475, 18502, 20041, 21580, 23118, 24657, 26195, 27733, 
	29271, 30810, 32348, 33886, 35424, 36962, 39013, 40551, 
	42089, 43628, 44654, 46193, 47732, 49271, 50298, 51837, 
	52865, 54405, 55433, 56462, 56979, 58008, 58525, 59043, 
	59561, 59567, 59573, 59067, 59073, 58054, 57548, 57041, 
	56021, 55002, 53982, 52450, 51429, 49897, 48364, 47343, 
	45809, 44276, 42742, 41209, 39675, 38141, 36608, 35074, 
	33540, 32006, 30472, 28938, 27405, 25871, 24337, 22804, 
	21270, 19737, 18204, 17183, 15650, 14117, 13097, 12077, 
	11057, 10037, 9018, 7999, 7492, 6986, 6992, 6486, 
	6492, 7010, 7016, 7173, 7691, 8720, 9748, 10777, 
	11805, 12833, 13860, 15400, 16939, 17966, 19505, 21043, 
	22582, 24120, 25659, 27197, 28735, 30273, 31812, 33350, 
	34888, 36426, 38476, 40015, 41553, 43091, 44630, 45657, 
	47195, 48734, 50274, 51301, 52841, 53868, 54897, 55925, 
	56954, 57471, 58500, 59018, 59024, 59542, 59548, 59042, 
	59048, 58541, 58035, 57016, 55997, 54977, 53957, 52937, 
	51917, 50384, 48851, 47830, 46297, 44764, 43230, 41697, 
	40163, 38629, 37095, 35562, 34028, 32494, 30960, 29426, 
	27893, 26359, 24825, 23292, 21758, 20225, 18691, 17158, 
	16137, 14605, 13584, 12052, 11032, 10012, 8993, 8486, 
	7979, 6961, 6967, 6460, 6466, 6472, 6990, 7508, 
	8025, 8543, 9571, 10600, 11268, 12296, 13836, 14863, 
	16402, 17941, 18968, 20507, 22046, 23584, 25122, 26661, 
	28199, 29737, 31275, 32814, 34352, 36402, 37940, 39478, 
	41017, 42555, 44094, 45632, 46659, 48198, 49737, 50764, 
	52304, 53332, 54872, 55900, 56417, 57446, 57963, 58481, 
	58998, 59516, 59522, 59528, 59022, 58516, 58010, 57503, 
	56484, 55464, 54444, 53424, 51892, 50872, 49339, 47806, 
	46785, 45251, 43718, 42184, 40651, 39117, 37583, 36049, 
	34516, 32982, 31448, 29914, 28380, 26847, 25313, 23779, 
	22246, 20712, 19179, 17646, 16625, 15092, 13560, 12539, 
	11519, 10499, 9480, 8461, 7954, 7448, 6941, 6435, 
	6441, 6447, 6965, 7483, 8000, 8518, 9546, 10063, 
	11091, 12631, 13659, 14687, 16226, 17765, 18432, 19971, 
	21509, 23048, 24586, 26125, 27663, 29201, 30739, 32277, 
	33816, 35866, 37404, 38942, 40481, 42019, 43557, 45096, 
	46635, 47662, 49201, 50740, 51767, 53307, 54335, 55363, 
	56392, 57421, 57938, 58455, 58973, 59491, 59497, 59503, 
	58997, 58491, 57984, 57478, 56459, 55951, 54932, 53400, 
	52380, 51359, 49826, 48293, 47272, 45739, 44206, 42672, 
	41139, 39605, 38071, 36537, 35004, 33470, 31936, 30402, 
	28868, 27334, 25289, 24267, 22734, 21200, 19667, 18134, 
	16600, 15580, 14047, 13027, 12007, 10475, 9967, 8948, 
	7929, 7422, 6916, 6922, 6416, 6422, 6940, 6946, 
	7463, 8492, 9010, 10038, 11067, 12095, 13123, 14662, 
	15690, 17229, 18768, 19794, 21333, 22872, 24410, 25948, 
	27487, 29025, 30563, 32101, 34152, 35330, 36868, 38406, 
	39944, 41483, 43021, 44560, 46098, 47125, 48664, 50203, 
	51231, 52770, 53798, 54826, 55855, 56884, 57913, 58430, 
	58948, 58954, 59472, 59478, 58972, 58978, 58471, 57453, 
	56946, 55926, 54907, 53887, 52867, 51335, 50314, 48781, 
	47248, 46227, 44693, 43160, 41626, 40093, 38559, 37025, 
	35491, 33958, 32424, 30890, 28844, 27310, 25777, 24243, 
	22709, 21688, 20154, 18621, 17088, 16067, 14534, 13514, 
	11982, 10962, 9942, 8923, 8416, 7397, 6891, 6897, 
	6390, 6396, 6402, 6920, 7438, 7955, 8985, 9501, 
	10530, 11558, 12586, 14126, 15153, 16692, 18231, 19770, 
	20797, 22335, 23874, 25412, 26951, 28489, 30027, 31565, 
	33615, 35154, 36692, 38230, 39768, 41307, 42845, 44384, 
	45922, 47461, 48488, 49667, 51206, 52234, 53262, 54802, 
	55830, 56859, 57376, 57893, 58923, 58928, 59446, 59452, 
	59458, 58952, 58446, 57940, 56921, 56414, 55394, 54374, 
	53354, 51822, 50801, 49269, 47736, 46202, 45181, 43648, 
	42114, 40581, 39047, 37513, 35979, 34445, 32912, 30866, 
	29332, 27798, 26264, 24731, 23197, 21664, 20642, 19109, 
	17576, 16043, 15022, 13489, 12469, 11449, 10429, 9410, 
	8391, 7884, 7378, 6871, 6365, 6371, 6377, 6895, 
	7413, 7930, 8447, 9476, 10505, 11533, 12561, 13589, 
	15129, 16156, 17695, 19234, 20261, 21799, 23338, 24876, 
	26414, 27953, 29491, 31541, 33079, 34617, 36156, 37694, 
	39232, 40770, 42309, 43847, 45386, 46925, 47951, 49490, 
	51030, 52057, 53597, 54625, 55653, 56322, 57351, 57868, 
	58385, 58903, 59421, 59427, 59433, 58927, 58421, 57914, 
	57408, 56389, 55369, 54350, 53330, 52309, 50777, 49756, 
	48223, 46690, 45669, 44135, 42602, 41068, 39535, 38001, 
	36467, 34933, 33399, 31354, 29820, 28286, 26752, 25218, 
	23685, 22151, 20618, 19597, 18063, 16530, 15509, 13977, 
	12956, 11424, 10405, 9385, 8878, 7859, 7352, 6846, 
	6852, 6346, 6352, 6870, 6876, 7393, 8422, 8939, 
	9968, 10997, 12025, 13052, 14592, 15619, 17159, 18697, 
	20236, 21263, 22801, 24340, 25878, 27416, 28955, 31005, 
	32543, 34081, 35619, 37158, 38696, 40234, 41773, 43311, 
	44850, 46388, 47927, 48954, 50493, 52033, 53060, 54088, 
	55116, 56145, 57174, 58203, 58720, 59238, 58884, 59402, 
	59408, 58902, 58908, 58401, 57383, 56876, 55856, 54837, 
	53817, 52797, 51264, 50244, 48711, 47178, 45645, 44623, 
	43090, 41556, 40022, 38489, 36955, 35421, 33375, 31841, 
	30308, 28774, 27240, 25706, 24173, 22639, 21106, 20084, 
	18551, 17018, 15485, 14464, 12932, 11912, 10892, 9872, 
	8853, 8346, 7327, 6821, 6827, 6320, 6326, 6332, 
	6850, 7368, 7885, 8914, 9431, 10460, 11488, 13028, 
	14056, 15595, 16622, 18161, 19700, 21239, 22265, 23804, 
	25342, 26880, 28931, 30469, 32007, 33545, 35083, 36621, 
	38160, 39698, 41236, 42775, 44313, 45852, 47391, 48930, 
	49957, 51496, 52524, 54063, 55091, 56120, 57149, 57666, 
	58695, 59213, 59218, 59736, 59742, 59748, 58882, 58376, 
	57869, 56851, 56343, 55324, 54304, 52772, 51752, 50219, 
	49198, 47665, 46132, 44599, 43577, 42044, 40510, 38977, 
	37443, 35397, 33863, 32329, 30795, 29262, 27728, 26194, 
	24660, 23127, 21593, 20060, 19039, 17506, 15973, 14952, 
	13419, 12399, 11379, 10359, 9340, 8321, 7814, 7308, 
	6801, 6295, 6301, 6307, 6825, 7343, 7860, 8377, 
	9406, 10435, 11463, 12491, 13519, 15058, 16086, 17625, 
	19164, 20702, 22241, 23779, 24806, 26856, 28394, 29933, 
	31471, 33009, 34547, 36085, 37623, 39162, 40700, 42238, 
	43777, 45316, 46854, 48393, 49420, 50959, 51987, 53527, 
	54555, 55583, 56611, 57640, 58158, 58675, 59193, 59711, 
	59717, 59723, 59217, 58711, 58204, 57697, 56678, 55299, 
	54279, 53259, 52239, 50707, 49686, 48153, 46620, 45087, 
	44065, 42532, 40998, 39464, 37931, 36397, 34351, 32817, 
	31283, 29749, 28216, 26682, 25148, 23615, 22081, 20548, 
	19526, 17993, 16460, 14927, 13907, 12886, 11354, 10334, 
	9315, 8808, 7789, 7282, 6776, 6270, 6276, 6282, 
	6799, 6805, 7323, 8352, 8869, 9898, 10926, 11954, 
	12982, 14522, 15549, 17088, 18627, 20166, 21705, 22731, 
	24269, 25808, 27346, 29396, 30935, 32473, 34011, 35549, 
	37087, 38626, 40164, 41702, 43241, 44779, 46318, 47857, 
	48884, 50423, 51962, 52990, 54018, 55558, 56075, 57103, 
	58132, 58650, 59168, 59173, 59691, 59698, 59192, 59197, 
	58691, 57672, 57165, 56146, 55127, 54107, 53086, 51554, 
	50533, 48640, 47107, 45574, 44041, 43019, 41486, 39952, 
	38418, 36885, 34839, 33305, 31771, 30237, 28703, 27170, 
	25636, 24102, 22569, 21035, 19502, 18481, 16948, 15415, 
	14394, 12862, 11841, 10821, 9802, 8783, 8276, 7257, 
	6750, 6756, 6250, 6256, 6774, 6780, 7298, 7815, 
	8844, 9361, 10389, 11418, 12958, 13985, 15525, 16552, 
	18091, 19630, 21168, 22707, 24245, 25784, 27322, 28860, 
	30398, 31937, 33475, 35013, 36551, 38089, 39628, 41166, 
	42704, 44243, 45782, 47320, 48859, 49886, 51426, 52453, 
	53993, 55021, 56050, 57078, 57595, 58625, 59142, 59148, 
	59666, 59672, 59678, 59172, 58666, 58159, 57140, 56633, 
	55614, 54594, 53062, 52041, 50509, 49488, 47955, 46422, 
	44889, 43355, 42334, 40800, 38754, 37220, 35687, 33793, 
	32259, 30725, 29191, 27658, 26124, 24590, 23056, 21523, 
	19990, 18968, 17435, 15902, 14881, 13349, 12329, 11309, 
	10289, 9270, 8251, 7744, 7237, 6731, 6225, 6231, 
	6237, 6755, 7272, 7790, 8307, 9336, 10365, 11393, 
	12421, 13449, 14988, 16015, 17554, 19093, 20632, 22171, 
	23709, 25247, 26786, 28324, 29862, 31400, 32939, 34477, 
	36015, 37553, 39091, 40630, 42168, 43707, 45245, 46784, 
	48323, 49350, 50889, 52429, 53456, 54484, 55513, 56541, 
	57570, 58088, 58605, 59123, 59641, 59647, 59653, 59147, 
	58641, 58134, 57627, 56608, 55589, 54569, 53549, 52529, 
	50996, 49976, 48443, 46910, 45376, 43843, 42309, 40776, 
	39242, 37708, 36175, 34641, 33107, 31573, 30039, 28505, 
	26972, 25438, 23904, 22371, 20837, 19304, 17923, 16390, 
	14857, 13836, 12304, 11284, 10264, 9245, 8737, 7719, 
	7212, 6706, 6200, 6206, 6212, 6729, 6735, 7253, 
	8282, 8799, 9828, 10856, 11884, 13424, 14452, 15991, 
	17018, 18557, 20096, 21634, 23173, 24711, 26250, 27788, 
	29326, 30864, 32402, 33941, 35479, 37017, 38555, 40094, 
	41632, 43170, 44709, 46248, 47786, 49325, 50353, 51892, 
	52920, 53948, 55488, 56516, 57033, 58062, 58580, 59098, 
	59615, 59621, 59627, 59121, 59127, 58621, 57602, 57095, 
	56076, 55056, 54036, 52504, 51484, 49951, 48930, 47397, 
	45864, 44331, 42797, 41264, 39730, 38196, 36662, 35129, 
	33595, 32061, 30527, 28993, 27459, 25926, 24392, 22858, 
	21325, 19792, 18258, 17237, 15704, 14684, 13151, 12131, 
	11111, 9732, 8712, 8206, 7187, 6680, 6686, 6180, 
	6186, 6704, 6710, 7228, 7745, 8774, 9803, 10319, 
	11860, 12887, 13915, 15454, 16482, 18021, 19559, 21098, 
	22637, 24175, 25713, 27252, 28790, 30328, 31866, 33405, 
	34943, 36481, 38019, 39557, 41096, 42634, 44173, 45711, 
	47250, 48789, 49816, 51356, 52383, 53923, 54951, 55979, 
	57008, 57525, 58555, 59072, 59078, 59596, 59602, 59096, 
	59102, 58596, 58089, 57070, 56563, 55544, 54012, 52992, 
	51971, 50439, 49418, 47885, 46352, 44818, 43285, 41751, 
	40218, 38684, 37150, 35616, 34083, 32549, 31015, 29481, 
	27947, 26414, 24880, 23346, 21813, 20279, 18746, 17725, 
	16192, 14659, 13639, 12619, 11087, 10067, 9559, 8540, 
	8034, 7527, 6661, 6155, 6161, 6167, 6685, 7202, 
	7720, 8237, 9266, 10295, 11323, 12351, 13378, 14918, 
	16457, 17484, 19023, 20562, 22100, 23639, 25177, 26716, 
	28254, 29792, 31330, 32868, 34407, 35945, 37483, 39021, 
	40560, 42098, 43636, 45175, 46714, 48253, 49792, 50819, 
	52358, 53386, 54414, 55443, 56471, 57500, 58017, 58535, 
	59053, 59571, 59577, 59583, 59077, 58571, 58064, 57557, 
	56538, 55519, 54499, 53479, 52459, 50926, 49393, 48372, 
	46839, 45306, 43773, 42239, 40705, 39172, 37638, 36104, 
	34570, 33037, 31503, 29969, 28435, 26901, 25368, 23834, 
	22300, 20767, 19234, 17701, 16680, 15147, 14126, 12594, 
	11574, 10554, 9535, 8515, 8009, 7502, 6996, 6490, 
	6495, 6501, 6659, 6665, 7695, 8212, 8729, 9758, 
	10786, 11814, 13354, 14381, 15921, 16948, 18487, 20025, 
	21564, 23103, 24641, 26179, 27718, 29256, 30794, 32332, 
	33870, 35409, 36947, 38485, 40023, 41562, 43100, 44639, 
	46177, 47716, 49255, 50282, 51822, 52850, 54390, 55418, 
	56446, 56963, 57992, 58510, 59027, 59545, 59551, 59557, 
	59051, 59057, 58551, 57532, 57025, 56006, 54986, 53966, 
	52434, 51414, 49881, 48860, 47327, 45794, 44260, 42727, 
	41193, 39660, 38126, 36592, 35058, 33524, 31991, 30457, 
	28923, 27389, 25855, 24322, 22788, 21255, 19721, 18188, 
	17167, 15634, 14102, 13081, 12061, 11041, 10022, 9002, 
	7983, 7477, 6970, 6976, 6470, 6476, 6994, 7000, 
	7518, 8035, 9064, 9733, 10761, 11789, 12817, 13845, 
	15384, 16923, 17950, 19489, 21028, 22566, 24105, 25643, 
	27181, 28720, 30258, 31796, 33334, 34872, 36411, 37949, 
	39487, 41026, 42564, 44102, 45641, 47180, 48719, 50258, 
	51285, 52825, 53853, 54881, 55909, 56938, 57455, 58485, 
	59002, 59008, 59526, 59532, 59026, 59032, 58526, 58019, 
	57000, 55981, 54961, 53942, 52922, 51901, 50369, 48836, 
	47815, 46281, 44748, 43215, 41681, 40147, 38614, 37080, 
	35546, 34012, 32478, 30945, 29411, 27877, 26343, 24810, 
	23276, 21743, 20209, 18676, 17143, 16122, 14589, 13569, 
	12036, 11016, 9997, 8977, 8470, 7964, 7457, 6951, 
	6445, 6451, 6457, 6975, 7492, 8010, 8527, 9556, 
	10584, 11613, 12641, 14180, 15208, 16387, 17414, 18953, 
	20492, 22030, 23569, 25107, 26645, 28184, 29722, 31260, 
	32798, 34336, 35874, 37413, 39463, 41001, 42540, 44078, 
	45105, 46644, 48182, 49722, 50749, 52288, 53316, 54344, 
	55372, 56401, 57430, 57947, 58465, 58983, 59501, 59507, 
	59513, 59007, 58500, 57994, 57487, 56468, 55449, 54429, 
	53409, 51877, 50856, 49323, 48302, 46769, 45236, 43702, 
	42169, 40635, 39102, 37568, 36034, 34500, 32966, 31432, 
	29899, 28365, 26831, 25297, 23764, 22230, 20697, 19164, 
	17630, 16609, 15077, 14056, 12524, 11504, 10484, 9464, 
	8445, 7938, 7432, 6926, 6419, 6425, 6431, 6949, 
	7467, 7985, 8502, 9531, 10048, 11076, 12616, 13644, 
	14671, 16210, 17750, 18776, 20315, 21854, 23392, 24931, 
	26469, 28007, 29186, 30724, 32262, 33800, 35338, 37389, 
	38927, 40465, 42003, 43542, 45081, 46107, 47646, 49185, 
	50724, 51752, 52779, 54319, 55348, 56376, 56893, 57922, 
	58440, 58957, 59475, 59481, 59487, 58981, 58987, 57969, 
	57462, 56955, 55936, 54916, 53384, 52364, 51343, 49811, 
	48278, 47257, 45724, 44190, 42657, 41123, 39589, 38056, 
	36522, 34988, 33454, 31920, 30387, 28853, 27319, 25785, 
	24252, 22718, 21185, 19651, 18118, 16585, 15564, 14031, 
	13011, 11991, 10971, 9952, 8932, 7913, 7407, 6900, 
	6906, 6400, 6406, 6924, 6930, 7447, 7965, 8994, 
	10023, 11051, 12079, 13107, 14647, 15674, 17213, 18240, 
	19779, 21318, 22856, 24395, 25933, 27471, 29009, 30548, 
	32086, 33624, 35162, 37212, 38751, 40289, 41827, 43366, 
	44544, 45571, 47110, 48649, 50188, 51215, 52755, 53783, 
	54811, 55839, 56868, 57385, 58414, 58932, 58938, 59456, 
	59462, 58956, 58962, 58456, 57949, 56930, 55911, 54891, 
	53871, 52851, 51319, 50298, 48765, 47744, 46211, 44678, 
	43144, 41611, 40077, 38543, 37010, 35476, 33942, 32408, 
	30874, 29341, 27807, 26273, 24739, 23206, 21672, 20139, 
	18606, 17073, 16052, 14519, 13498, 11966, 10946, 9927, 
	8907, 8400, 7382, 6875, 6881, 6375, 6381, 6387, 
	6905, 7422, 7940, 8457, 9486, 10514, 11542, 12570, 
	14110, 15138, 16677, 18216, 19243, 20781, 22320, 23858, 
	25397, 26935, 28473, 30011, 31550, 33088, 35138, 36676, 
	38214, 39753, 41291, 42829, 44368, 45907, 46933, 48472, 
	50011, 51551, 52578, 53606, 54786, 55814, 56331, 57360, 
	57877, 58395, 58913, 59431, 59437, 59443, 58937, 58430, 
	57924, 57417, 56398, 55379, 54359, 53339, 51806, 50786, 
	49253, 47720, 46699, 45166, 43632, 42099, 40565, 39031, 
	37498, 35964, 34430, 32896, 31362, 29828, 28295, 26249, 
	24715, 23694, 22160, 20627, 19093, 17560, 16027, 15006, 
	13474, 12454, 11434, 10414, 9394, 8375, 7868, 7362, 
	6856, 6349, 6355, 6361, 6879, 7397, 7915, 8432, 
	9461, 9977, 11006, 12546, 13574, 14601, 16140, 17679, 
	19218, 20245, 21784, 23322, 24860, 26399, 27937, 29475, 
	31014, 32552, 34602, 36140, 37678, 39217, 40755, 42293, 
	43832, 45370, 46909, 47936, 49475, 51014, 52042, 53581, 
	54609, 55637, 56666, 57695, 58212, 58370, 58887, 59405, 
	59411, 59417, 58911, 58405, 57899, 57392, 56373, 55866, 
	54846, 53314, 52294, 51273, 49741, 48208, 46675, 45653, 
	44120, 42586, 41053, 39519, 37985, 36452, 34918, 33384, 
	31850, 30316, 28270, 26737, 25203, 23669, 22136, 21114, 
	19581, 18048, 16515, 15494, 13961, 12941, 11409, 10389, 
	9369, 8862, 7843, 7337, 6830, 6836, 6330, 6336, 
	6854, 6860, 7377, 8407, 8924, 9953, 10981, 12009, 
	13037, 14576, 15604, 17143, 18682, 19709, 21247, 22786, 
	24324, 25863, 27401, 28939, 30477, 32016, 34066, 35604, 
	37142, 38680, 40219, 41757, 43295, 44834, 46373, 47399, 
	48938, 50478, 51505, 53045, 54072, 55101, 56129, 57158, 
	58187, 58704, 59222, 59228, 59746, 59392, 58886, 58892, 
	58386, 57367, 56860, 55841, 54821, 53801, 52781, 51249, 
	50228, 48695, 47162, 46141, 44608, 43074, 41541, 40007, 
	38473, 36939, 35406, 33872, 32338, 30292, 28758, 27225, 
	25691, 24157, 22624, 21602, 20069, 18535, 17002, 15469, 
	14449, 12916, 11896, 10876, 9857, 8837, 8330, 7311, 
	6805, 6811, 6305, 6311, 6317, 6835, 7352, 7870, 
	8899, 9416, 10444, 11472, 13012, 14040, 15067, 16607, 
	18146, 19684, 20711, 22250, 23788, 25326, 26865, 28403, 
	29941, 31991, 33530, 35068, 36606, 38144, 39682, 41221, 
	42759, 44298, 45836, 47375, 48402, 49941, 51480, 52508, 
	53536, 55076, 56104, 57133, 57650, 58167, 59197, 59203, 
	59721, 59727, 59733, 59227, 58720, 58214, 56835, 56328, 
	55308, 54289, 52757, 51736, 50716, 49183, 47650, 46117, 
	45095, 43562, 42028, 40495, 38961, 37427, 35893, 34360, 
	32314, 30780, 29246, 27712, 26179, 24645, 23111, 21578, 
	20556, 19023, 17490, 15957, 14936, 13404, 12383, 11363, 
	10344, 9324, 8305, 7798, 7292, 6786, 6279, 6285, 
	6291, 6809, 7327, 7845, 8362, 9391, 10419, 11448, 
	12476, 13503, 15043, 16070, 17609, 19148, 20687, 21713, 
	23252, 24790, 26329, 27867, 29405, 31455, 32993, 34532, 
	36070, 37608, 39146, 40685, 42223, 43761, 45300, 46839, 
	48378, 49405, 50944, 51971, 53511, 54539, 55567, 56596, 
	57625, 58142, 58660, 59177, 59695, 59701, 59707, 59201, 
	58695, 58189, 57682, 56663, 55644, 54624, 53604, 52584, 
	50691, 49670, 48137, 46604, 45071, 44050, 42516, 40983, 
	39449, 37915, 36381, 34336, 32802, 31268, 29734, 28200, 
	26666, 25133, 23599, 22066, 20532, 19511, 17978, 16445, 
	14912, 13891, 12871, 11339, 10319, 9299, 8792, 7773, 
	7267, 6760, 6254, 6260, 6266, 6784, 6790, 7307, 
	8337, 8854, 9882, 10911, 11939, 12967, 14506, 15534, 
	17073, 18612, 20150, 21689, 22716, 24254, 25792, 27331, 
	29381, 30919, 32457, 33995, 35534, 37072, 38610, 40148, 
	41687, 43225, 44764, 46302, 47841, 48868, 50407, 51947, 
	52974, 54002, 55031, 56059, 57088, 58117, 58634, 59152, 
	59158, 59676, 59682, 59176, 59182, 58676, 57657, 57150, 
	56131, 55111, 54091, 53071, 51539, 50518, 48985, 47452, 
	45919, 44385, 43364, 41830, 39937, 38403, 36357, 34823, 
	33290, 31756, 30222, 28688, 27154, 25621, 24087, 22553, 
	21020, 19486, 18465, 16932, 15399, 14379, 12846, 11826, 
	10806, 9786, 8767, 8260, 7242, 6735, 6741, 6235, 
	6241, 6759, 6765, 7282, 7800, 8829, 9346, 10374, 
	11402, 12942, 13970, 15509, 16536, 18075, 19614, 21153, 
	22691, 24230, 25768, 27307, 28845, 30383, 31921, 33459, 
	34998, 36536, 38074, 39612, 41151, 42689, 44228, 45766, 
	47305, 48844, 49871, 51410, 52438, 53978, 55006, 56034, 
	57063, 57580, 58609, 59127, 59133, 59651, 59657, 59663, 
	59157, 58650, 58144, 57125, 56618, 55598, 54579, 53046, 
	52026, 50493, 49473, 47940, 46406, 44873, 43340, 41806, 
	40785, 38739, 37205, 35671, 34137, 32604, 31070, 29536, 
	28002, 26468, 24935, 23041, 21508, 19974, 18441, 17420, 
	15887, 14866, 13334, 12313, 11293, 9762, 9254, 8235, 
	7728, 7222, 6716, 6209, 6215, 6221, 6739, 7257, 
	7775, 8292, 9321, 10349, 11378, 12406, 13433, 14973, 
	16000, 17539, 19078, 20617, 22155, 23694, 25232, 26770, 
	28309, 29847, 31385, 32923, 34461, 36000, 37538, 39076, 
	40614, 42153, 43691, 45230, 46769, 48307, 49335, 50874, 
	52413, 53441, 54469, 55497, 56526, 57555, 58072, 58590, 
	59107, 59625, 59631, 59637, 59131, 58625, 58119, 57612, 
	56593, 55573, 54554, 53534, 52514, 50981, 49960, 48427, 
	46894, 45361, 43827, 42294, 40760, 39227, 37693, 36159, 
	34625, 33091, 31558, 30024, 28490, 26956, 25423, 23889, 
	22355, 20822, 19289, 18267, 16734, 15202, 14181, 12289, 
	11269, 10249, 9229, 8722, 7703, 7197, 6690, 6184, 
	6190, 6196, 6714, 6720, 7237, 8267, 8784, 9812, 
	10841, 11869, 13409, 14436, 15975, 17003, 18542, 20080, 
	21619, 23157, 24696, 26234, 27772, 29311, 30849, 32387, 
	33925, 35463, 37002, 38540, 40078, 41617, 43155, 44694, 
	46232, 47771, 49310, 50337, 51877, 52904, 54444, 55472, 
	56501, 57018, 58047, 58564, 59082, 59600, 59606, 59612, 
	59106, 59112, 58606, 57587, 57080, 56061, 55041, 54021, 
	52489, 51468, 49936, 48915, 47382, 45849, 44315, 42782, 
	41248, 39714, 38181, 36647, 35113, 33579, 32045, 30512, 
	28978, 27444, 25910, 24377, 22843, 21310, 19776, 18243, 
	17222, 15689, 14668, 13136, 12116, 11096, 10076, 9057, 
	8550, 7171, 6665, 6671, 6165, 6171, 6689, 6695, 
	7212, 7730, 8759, 9787, 10304, 11844, 12872, 13900, 
	15439, 16466, 18005, 19544, 21083, 22621, 24160, 25698, 
	27236, 28775, 30313, 31851, 33389, 34927, 36465, 38004
};
#define ISSData_Length 5760
#endif

#define ISS_CUT_OFF 30  // tollerance in deg (lat + lon) to consider ISS close enough to give it a try
//#define getISSLatitude(x)  ((ISSData[x] >> 9) - 64)
//#define getISSLongitude(x) ((ISSData[x] & 511) - 180)


// Module declarations
static void parse_sentence_type(const char * token);
static void parse_time(const char *token);
static void parse_date(const char *token);
static void parse_status(const char *token);
static void parse_lat(const char *token);
static void parse_lat_hemi(const char *token);
static void parse_lon(const char *token);
static void parse_lon_hemi(const char *token);
static void parse_speed(const char *token);
static void parse_course(const char *token);
static void parse_altitude(const char *token);



// Module types
typedef void (*t_nmea_parser)(const char *token);

enum t_sentence_type {
  SENTENCE_UNK,
  SENTENCE_GGA,
  SENTENCE_RMC
};


// Module constants
static const t_nmea_parser unk_parsers[] = {
  parse_sentence_type,    // $GPxxx
};

static const t_nmea_parser gga_parsers[] = {
  NULL,             // $GPGGA
  parse_time,       // Time
  NULL,             // Latitude
  NULL,             // N/S
  NULL,             // Longitude
  NULL,             // E/W
  NULL,             // Fix quality 
  NULL,             // Number of satellites
  NULL,             // Horizontal dilution of position
  parse_altitude,   // Altitude
  NULL,             // "M" (mean sea level)
  NULL,             // Height of GEOID (MSL) above WGS84 ellipsoid
  NULL,             // "M" (mean sea level)
  NULL,             // Time in seconds since the last DGPS update
  NULL              // DGPS station ID number
};

static const t_nmea_parser rmc_parsers[] = {
  NULL,             // $GPRMC
  parse_time,       // Time
  parse_status,     // A=active, V=void
  parse_lat,        // Latitude,
  parse_lat_hemi,   // N/S
  parse_lon,        // Longitude
  parse_lon_hemi,   // E/W
  parse_speed,      // Speed over ground in knots
  parse_course,     // Track angle in degrees (true)
  parse_date,       // Date (DDMMYY)
  NULL,             // Magnetic variation
  NULL              // E/W
};

static const int NUM_OF_UNK_PARSERS = (sizeof(unk_parsers) / sizeof(t_nmea_parser));
static const int NUM_OF_GGA_PARSERS = (sizeof(gga_parsers) / sizeof(t_nmea_parser));
static const int NUM_OF_RMC_PARSERS = (sizeof(rmc_parsers) / sizeof(t_nmea_parser));

// Module variables
static t_sentence_type sentence_type = SENTENCE_UNK;
static bool at_checksum = false;
static unsigned char our_checksum = '$';
static unsigned char their_checksum = 0;
static char token[16];
static int num_tokens = 0;
static unsigned int offset = 0;
static bool active = false;
static char gga_time[7], rmc_time[7], rmc_date[7];
static char new_time[7], new_date[7];
static float new_lat;
static float new_lon;
static char new_aprs_lat[9];
static char new_aprs_lon[10];
static float new_course;
static float new_speed;
static float new_altitude;

// Public (extern) variables, readable from other modules
char gps_time[7];       // HHMMSS
char gps_date[7];       // DDMMYY
float gps_lat = 0;
float gps_lon = 0;
char gps_aprs_lat[9];
char gps_aprs_lon[10];
float gps_course = 0;
float gps_speed = 0;
float gps_altitude = 0;
unsigned long doppler_frequency = 145825000UL;
bool satInView = false;
int iss_lat;
int iss_lon;
unsigned int iss_datapoint;

// Module functions
unsigned char from_hex(char a) 
{
  if (a >= 'A' && a <= 'F')
    return a - 'A' + 10;
  else if (a >= 'a' && a <= 'f')
    return a - 'a' + 10;
  else if (a >= '0' && a <= '9')
    return a - '0';
  else
    return 0;
}

void parse_sentence_type(const char *token)
{
  if (strcmp(token, "$GPGGA") == 0) {
    sentence_type = SENTENCE_GGA;
  } else if (strcmp(token, "$GPRMC") == 0) {
    sentence_type = SENTENCE_RMC;
  } else {
    sentence_type = SENTENCE_UNK;
  }
}

void parse_time(const char *token)
{
  // Time can have decimals (fractions of a second), but we only take HHMMSS
  strncpy(new_time, token, 6);
}

void parse_date(const char *token)
{
  // Date in DDMMYY
  strncpy(new_date, token, 6);
}


void parse_status(const char *token)
{
  // "A" = active, "V" = void. We shoud disregard void sentences
  if (strcmp(token, "A") == 0)
    active = true;
  else
    active = false;
}

void parse_lat(const char *token)
{
  // Parses latitude in the format "DD" + "MM" (+ ".M{...}M")
  char degs[3];
  if (strlen(token) >= 4) {
    degs[0] = token[0];
    degs[1] = token[1];
    degs[2] = '\0';
    new_lat = atof(degs) + atof(token + 2) / 60;
  }
  // APRS-ready latitude
  strncpy(new_aprs_lat, token, 7);
}

void parse_lat_hemi(const char *token)
{
  if (token[0] == 'S')
    new_lat = -new_lat;
  new_aprs_lat[7] = token[0];
  new_aprs_lon[8] = '\0';
}

void parse_lon(const char *token)
{
  // Longitude is in the format "DDD" + "MM" (+ ".M{...}M")
  char degs[4];
  if (strlen(token) >= 5) {
    degs[0] = token[0];
    degs[1] = token[1];
    degs[2] = token[2];
    degs[3] = '\0';
    new_lon = atof(degs) + atof(token + 3) / 60;
  }
  // APRS-ready longitude
  strncpy(new_aprs_lon, token, 8);
}

void parse_lon_hemi(const char *token)
{
  if (token[0] == 'W')
    new_lon = -new_lon;
  new_aprs_lon[8] = token[0];
  new_aprs_lon[9] = '\0';
}

void parse_speed(const char *token)
{
  new_speed = atof(token);
}

void parse_course(const char *token)
{
  new_course = atof(token);
}

void parse_altitude(const char *token)
{
  new_altitude = atof(token);
}


//
// Exported functions
//
void gps_setup() {
  strcpy(gps_time, "000000");
  strcpy(gps_date, "000000");
  strcpy(gps_aprs_lat, "0000.00N");
  strcpy(gps_aprs_lon, "00000.00E");
}

bool gps_decode(char c)
{
  int ret = false;

  switch(c) {
    case '\r':
    case '\n':
      // End of sentence

      if (num_tokens && our_checksum == their_checksum) {
#ifdef DEBUG_GPS
        Serial.print(" (OK!)");
#endif
        // Return a valid position only when we've got two rmc and gga
        // messages with the same timestamp.
        switch (sentence_type) {
          case SENTENCE_UNK:
            break;    // Keeps gcc happy
          case SENTENCE_GGA:
            strcpy(gga_time, new_time);
            break;
          case SENTENCE_RMC:
            strcpy(rmc_time, new_time);
            strcpy(rmc_date, new_date);
            break;
        }

        // Valid position scenario:
        //
        // 1. The timestamps of the two previous GGA/RMC sentences must match.
        //
        // 2. We just processed a known (GGA/RMC) sentence. Suppose the
        //    contrary: after starting up this module, gga_time and rmc_time
        //    are both equal (they're both initialized to ""), so (1) holds
        //    and we wrongly report a valid position.
        //
        // 3. The GPS has a valid fix. For some reason, the Venus 634FLPX
        //    reports 24 deg N, 121 deg E (the middle of Taiwan) until a valid
        //    fix is acquired:
        //
        //    $GPGGA,120003.000,2400.0000,N,12100.0000,E,0,00,0.0,0.0,M,0.0,M,,0000**69 (OK!)
        //    $GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0**30 (OK!)
        //    $GPRMC,120003.000,V,2400.0000,N,12100.0000,E,000.0,000.0,280606,,,N**78 (OK!)
        //    $GPVTG,000.0,T,,M,000.0,N,000.0,K,N**02 (OK!)

        if (sentence_type != SENTENCE_UNK &&      // Known sentence?
            strcmp(gga_time, rmc_time) == 0 &&    // RMC/GGA times match?
            active) {                             // Valid fix?
          // Atomically merge data from the two sentences
          strcpy(gps_time, new_time);
          strcpy(gps_date, new_date);
          gps_lat = new_lat;
          gps_lon = new_lon;
          strcpy(gps_aprs_lat, new_aprs_lat);
          strcpy(gps_aprs_lon, new_aprs_lon);
          gps_course = new_course;
          gps_speed = new_speed;
          gps_altitude = new_altitude;
          ret = true;
        }
      }
#ifdef DEBUG_GPS
      if (num_tokens)
        Serial.println();
#endif
      at_checksum = false;        // CR/LF signals the end of the checksum
      our_checksum = '$';         // Reset checksums
      their_checksum = 0;
      offset = 0;                 // Prepare for the next incoming sentence
      num_tokens = 0;
      sentence_type = SENTENCE_UNK;
      break;
    
    case '*':
      // Begin of checksum and process token (ie. do not break)
      at_checksum = true;
      our_checksum ^= c;
#ifdef DEBUG_GPS
      Serial.print(c);
#endif

    case ',':
      // Process token
      token[offset] = '\0';
      our_checksum ^= c;  // Checksum the ',', undo the '*'

      // Parse token
      switch (sentence_type) {
        case SENTENCE_UNK:
          if (num_tokens < NUM_OF_UNK_PARSERS && unk_parsers[num_tokens])
            unk_parsers[num_tokens](token);
          break;
        case SENTENCE_GGA:
          if (num_tokens < NUM_OF_GGA_PARSERS && gga_parsers[num_tokens])
            gga_parsers[num_tokens](token);
          break;
        case SENTENCE_RMC:
          if (num_tokens < NUM_OF_RMC_PARSERS && rmc_parsers[num_tokens])
            rmc_parsers[num_tokens](token);
          break;
      }

      // Prepare for next token
      num_tokens++;
      offset = 0;
#ifdef DEBUG_GPS
      Serial.print(c);
#endif
      break;

    default:
      // Any other character
      if (at_checksum) {
        // Checksum value
        their_checksum = their_checksum * 16 + from_hex(c);
      } else {
        // Regular NMEA data
        if (offset < 15) {  // Avoid buffer overrun (tokens can't be > 15 chars)
          token[offset] = c;
          offset++;
          our_checksum ^= c;
        }
      }
#ifdef DEBUG_GPS
      Serial.print(c);
#endif
  }
  return ret;
}


unsigned long gps_get_region_frequency()
{
  unsigned long frequency = MX146_FREQUENCY;
  if(-168 < gps_lon && gps_lon < -25) frequency = MX146_FREQUENCY_REGION2;
  if(-25 <  gps_lon && gps_lon <  71) frequency = MX146_FREQUENCY_REGION1;
  if(-34.95 < gps_lat && gps_lat < 7.18  && -73.13 < gps_lon && gps_lon < -26.46) frequency = MX146_FREQUENCY_BRAZIL;      // Brazil
  if( 29.38 < gps_lat && gps_lat < 47.10 && 127.16 < gps_lon && gps_lon < 153.61) frequency = MX146_FREQUENCY_JAPAN;       // Japan
  if( 19.06 < gps_lat && gps_lat < 53.74 &&  72.05 < gps_lon && gps_lon < 127.16) frequency = MX146_FREQUENCY_CHINA;       // China
  if( -0.30 < gps_lat && gps_lat < 20.42 &&  93.06 < gps_lon && gps_lon < 105.15) frequency = MX146_FREQUENCY_THAILAND;    // Thailand
  if(-54.54 < gps_lat && gps_lat <-32.43 && 161.62 < gps_lon && gps_lon < 179.99) frequency = MX146_FREQUENCY_NEWZEALAND;  // New Zealand
  if(-50.17 < gps_lat && gps_lat < -8.66 && 105.80 < gps_lon && gps_lon < 161.62) frequency = MX146_FREQUENCY_AUSTRALIA;   // Australia
  
  // Note: These regions are a super simplified approach to define rectangles on the world map, representing regions where we may consider at least some
  // chance that an APRS Digipeter or an Igate is listening. They have absolutely NO political relevance. I was just trying to identify
  // regions with APRS activity on APRS.fi and look up the used frequencies on the web. Any corrections or additions are welcome. Please email
  // your suggestions to thomas@tkrahn.com 
  
  // use your own coordinates for testing; Comment out when testing is finished!
//  if(29.7252 < gps_lat && gps_lat < 29.7261 && -95.5082 < gps_lon && gps_lon < -95.5074) frequency = MX146_FREQUENCY_TESTING; // KT5TK home
  //if(29.7353 < gps_lat && gps_lat < 29.7359 && -95.5397 < gps_lon && gps_lon < -95.5392) frequency = MX146_FREQUENCY_TESTING; // Gessner BBQ

  // Note: Never define a region that spans the date line! Use two regions instead.
  if(gps_lat == 0 && gps_lon == 0) frequency = MX146_FREQUENCY; // switch to default when we don't have a GPS lease
  
  return frequency;
}

bool gps_check_satellite()
{
  int latdiff;
  int londiff;

  long igpsdate = atol(gps_date);
  long igpstime = atol(gps_time);
  
  int gpstime_day     =        igpsdate / 10000;  
  int gpstime_month   =        (igpsdate % 10000) / 100;
  int gpstime_year    =        (igpsdate % 10000) % 100 + 2000;
  int gpstime_hour    =        igpstime / 10000;
  int gpstime_minute  =        (igpstime % 10000) / 100; 
  int gpstime_second  =        (igpstime % 10000) % 100;

  
//  int gpstime_year    = 2012;  
//  int gpstime_month   = 2;
//  int gpstime_day     = 11;
//  int gpstime_hour    = 21;
//  int gpstime_minute  = 0;
//  int gpstime_second  = 0;

#ifdef TESTISS
  long gpslaunchminutes = (gpstime_day - 9 ) * 1440 + (gpstime_hour - 21) * 60 + gpstime_minute - 0;
#else
  long gpslaunchminutes = (gpstime_day - 11) * 1440 + (gpstime_hour - 21) * 60 + gpstime_minute - 0;
#endif


// look 4 minutes into the future so that you see the constellation for the next TX cycle
  gpslaunchminutes += 4;
  
  // make sure we're in the bounds of the array.
  if ((gpslaunchminutes < 0) || (gpslaunchminutes > ISSData_Length)) // make sure we're in the bounds of the array.
  {
    gpslaunchminutes = 0; 
  }
  
  iss_datapoint = pgm_read_word_near(ISSData + gpslaunchminutes);
  
  // unmerge the datapoint into its components
  iss_lat = ((iss_datapoint >> 9) - 64); 
  iss_lon = ((iss_datapoint & 511) - 180);
  
  latdiff = abs(iss_lat - (int)gps_lat);
  londiff = abs(iss_lon - (int)gps_lon);
  
  // ISS nearby? This doesn't really represent a circle (rather a rhombus or something, but who cares?
  if ((latdiff + londiff) < ISS_CUT_OFF) 
  {
    satInView = true;
    
  }
  else
  {
    satInView = false;

  }  
  return satInView;  
}





float gps_get_lat()
{
  return gps_lat; 
}


float gps_get_lon()
{
  return gps_lon; 
}

long gps_get_time()
{
  return atol(gps_time);
}

long gps_get_date()
{
  return atol(gps_date);
}


